c# - 如何使用 ExecuteScalar() 获取值并将其赋给您的 textbox.text?

标签 c# sql-server ado.net return executescalar

这是我的 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)
);

我有一份发票表格和一份确认表格。用户在第一个表格中选择所需的商品,并在第二个表格中确认他/她应该支付的金额。我希望我的程序将 sum(RowTotalColumn) 的值显示为 TotalCostTextBox.Text 中的文本。 我编写了以下代码:

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 语句无关。

最佳答案

您的方法的返回类型是 int,这就是您收到错误的原因。您可以将方法返回类型更改为 void并删除 return 关键字:

private void ConfirmForm_Load

还有

var result = sqlcmd.ExecuteScalar();
int x = int.Parse(result.ToString());
TotalCostTextBox1.Text = x.ToString();

关于c# - 如何使用 ExecuteScalar() 获取值并将其赋给您的 textbox.text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53409359/

相关文章:

c# - 如何在 C# 中禁用 outlook 空白主题提示

c# - 如何创建.net core类库

javascript - 在 Sequelize-cli migrate for MSSQL 上将加密设置为 true

ado.net - 如何使用 ADO.NET 请求数据库产品名称?

vb.net - Ado.net 遍历 SqlDataReader 行中的每一列

c# - Visual Studio 2010 中的错误/奇怪的 For-Loop 行为?

c# - 错误 : The Out Parameter must be assigned before control leaves the current method

sql - 如何重新键入表中的层次结构?

sql - 在我的 sql 语句中,我对同一个参数调用 sum 两次,是否重复工作?

c# - 通过 ADO.Net 命令调用 Informix 存储过程的最佳/正确方法?