如何使用 ExecuteScalar() 获取一个值并将其提供给您的 textbox.text?
How to use ExecuteScalar() to get a value and give it to your textbox.text?
这是我的 table:
CREATE TABLE [dbo].[InvoiceTable] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[CodeColumn] NVARCHAR (50) NOT NULL,
[NameColumn] NVARCHAR (50) NOT NULL,
[QTYColumn] INT NULL,
[TotalQTYColumn] INT NULL,
[UnitCostColumn] INT NOT NULL,
[DiscountRateColumn] FLOAT (53) DEFAULT ((0)) NULL,
[RowTotalColumn] AS (([QTYColumn]*[UnitCostColumn])*((1)-[DiscountRateColumn])) PERSISTED,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
我有一张发票表格和一张确认表格。用户在第一个表格中选择想要的商品,并在第二个表格中确认he/she应该支付多少。我希望我的程序在我的 TotalCostTextBox.Text 中将 sum(RowTotalColumn)
的值显示为文本。
我写了下面的代码:
private int ConfirmForm_Load(object sender, EventArgs e)
{
string selectQuery = "SELECT Sum(RowTotalColumn) FROM InvoiceTable";
var sqlcmd = new SqlCommand(selectQuery, sqlcon);
var result = sqlcmd.ExecuteScalar();
return int.Parse(result.ToString());
TotalCostTextBox1.Text = result.ToString();
当我把 TotalCostTextBox1.Text = result.ToString();
放在 return
之后时,它会大喊
Unreachable code detected
当我把它放在 return
之前时,TotalCostTextBox1
什么也没显示...
请告诉我如何用值填充 TotalCostTextBox1。与 return 声明无关。
您方法的 return 类型是 int,这就是您出错的原因。您可以将方法 return 类型更改为 void
并删除 return 关键字:
private void ConfirmForm_Load
和
var result = sqlcmd.ExecuteScalar();
int x = int.Parse(result.ToString());
TotalCostTextBox1.Text = x.ToString();
Unreachable code detected
那是因为您在永远无法到达的 return
语句之后分配给您的文本框。它是一个事件处理程序,因此应该是 void
类型,因为事件处理程序没有 return 任何东西。
private void ConfirmForm_Load(object sender, EventArgs e)
{
string selectQuery = "SELECT Sum(RowTotalColumn) FROM InvoiceTable";
var sqlcmd = new SqlCommand(selectQuery, sqlcon);
var result = sqlcmd.ExecuteScalar();
this.TotalCostTextBox1.Text = result.ToString();
考虑到 TotalCostTextBox1
是 TotalCostTextBox1
控件的实例名称
您需要在return
之前放置下面的赋值语句
TotalCostTextBox1.Text = result.ToString();
您的最终代码应如下所示:
private void ConfirmForm_Load(object sender, EventArgs e)
{
string selectQuery = "SELECT Sum(RowTotalColumn) FROM InvoiceTable";
var sqlcmd = new SqlCommand(selectQuery, sqlcon);
var result = sqlcmd.ExecuteScalar();
TotalCostTextBox1.Text = result.ToString();
//return int.Parse(result.ToString());
}
你还需要用ConfirmForm_Load函数检查事件绑定。要验证这一点,请检查 ConfirmForm.Designer.cs
中是否有以下行
this.Load += new System.EventHandler(this.ConfirmForm_Load);
这是我的 table:
CREATE TABLE [dbo].[InvoiceTable] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[CodeColumn] NVARCHAR (50) NOT NULL,
[NameColumn] NVARCHAR (50) NOT NULL,
[QTYColumn] INT NULL,
[TotalQTYColumn] INT NULL,
[UnitCostColumn] INT NOT NULL,
[DiscountRateColumn] FLOAT (53) DEFAULT ((0)) NULL,
[RowTotalColumn] AS (([QTYColumn]*[UnitCostColumn])*((1)-[DiscountRateColumn])) PERSISTED,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
我有一张发票表格和一张确认表格。用户在第一个表格中选择想要的商品,并在第二个表格中确认he/she应该支付多少。我希望我的程序在我的 TotalCostTextBox.Text 中将 sum(RowTotalColumn)
的值显示为文本。
我写了下面的代码:
private int ConfirmForm_Load(object sender, EventArgs e)
{
string selectQuery = "SELECT Sum(RowTotalColumn) FROM InvoiceTable";
var sqlcmd = new SqlCommand(selectQuery, sqlcon);
var result = sqlcmd.ExecuteScalar();
return int.Parse(result.ToString());
TotalCostTextBox1.Text = result.ToString();
当我把 TotalCostTextBox1.Text = result.ToString();
放在 return
之后时,它会大喊
Unreachable code detected
当我把它放在 return
之前时,TotalCostTextBox1
什么也没显示...
请告诉我如何用值填充 TotalCostTextBox1。与 return 声明无关。
您方法的 return 类型是 int,这就是您出错的原因。您可以将方法 return 类型更改为 void
并删除 return 关键字:
private void ConfirmForm_Load
和
var result = sqlcmd.ExecuteScalar();
int x = int.Parse(result.ToString());
TotalCostTextBox1.Text = x.ToString();
Unreachable code detected
那是因为您在永远无法到达的 return
语句之后分配给您的文本框。它是一个事件处理程序,因此应该是 void
类型,因为事件处理程序没有 return 任何东西。
private void ConfirmForm_Load(object sender, EventArgs e)
{
string selectQuery = "SELECT Sum(RowTotalColumn) FROM InvoiceTable";
var sqlcmd = new SqlCommand(selectQuery, sqlcon);
var result = sqlcmd.ExecuteScalar();
this.TotalCostTextBox1.Text = result.ToString();
考虑到 TotalCostTextBox1
是 TotalCostTextBox1
控件的实例名称
您需要在return
之前放置下面的赋值语句TotalCostTextBox1.Text = result.ToString();
您的最终代码应如下所示:
private void ConfirmForm_Load(object sender, EventArgs e)
{
string selectQuery = "SELECT Sum(RowTotalColumn) FROM InvoiceTable";
var sqlcmd = new SqlCommand(selectQuery, sqlcon);
var result = sqlcmd.ExecuteScalar();
TotalCostTextBox1.Text = result.ToString();
//return int.Parse(result.ToString());
}
你还需要用ConfirmForm_Load函数检查事件绑定。要验证这一点,请检查 ConfirmForm.Designer.cs
中是否有以下行this.Load += new System.EventHandler(this.ConfirmForm_Load);