使用ExecuteScalar方法进行求和查询

本文关键字:求和 查询 ExecuteScalar 方法 使用 | 更新日期: 2023-09-27 17:57:52

我正在使用C#winforms,尝试执行求和查询,并使用ExecuteScalar方法检查是否有效。我在MessageBox中显示"answers"。

我的问题是:查询不起作用,因为消息框中的总和仍然是0。

我的方法:

string Name = salesdetails.CmbEmployeeName.Text;
        int sum = 0;
        string connStr = @"Data Source=............................";
        string Query = ("SELECT SUM(PriceOrder) FROM tblOrdersFromCustomers WHERE CustomerID=N'" + Name + "'");
        using (SqlConnection conDataBase = new SqlConnection(connStr))
        {
            SqlCommand cmdDataBase = new SqlCommand(Query, conDataBase);
            try
            {
                conDataBase.Open();
                sum = (int)cmdDataBase.ExecuteScalar();
            }
            catch
            {
            }
        }
        MessageBox.Show(string.Format("Sum: {0}", sum));

使用ExecuteScalar方法进行求和查询

sum = Convert.ToInt32(cmdDataBase.ExecuteScalar());

首先我认为您的查询有问题

即,您的表名似乎不正确。

不应该是tblOrders而不是tblOrdersFromCustomers

使用SqlCommand.ExecuteReader

using(reader = cmdDataBase.ExecuteReader())
{
    while (reader.Read())
    {
        sum  = reader[0]!=DBNull.Value?Convert.ToInt32(reader[0]):0; 
    }   
}