一尘不染

将C#SQL SUM值添加到标签

sql

我目前有一个显示所有项目的DataGridView。我想对价格列中的所有价格求和,然后将总和反映在标签“
TotalValueLabel”中。我的陈述出了什么问题?

        string query = "SELECT SUM (Price) FROM Bill";
        OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, DBconn);
        DataTable source = new DataTable();
        dAdapter.Fill(source);
        TotalValueLabel.Text = source.ToString();

阅读 154

收藏
2021-03-17

共1个答案

一尘不染

您的数据源是一个数据表,因此“ source.ToString()”不会为您提供结果,

尝试“ source.Rows[0][0].ToString();”。

DataTable对象包含DataRow对象的列表,这些对象保存查询结果每一行的值。

但是,根据您的情况,您可能不需要此。如果要查找单个值,则应使用IDbCommand并调用ExecuteScalar()。这将返回
第一个值 的的 第一行 的结果。

另外,请尝试调用Dispose()实现IDisposable的对象(例如dbadapter,命令,连接)。

string query = "SELECT SUM (Price) FROM Bill";
using (System.Data.IDbCommand command = new System.Data.OleDb.OleDbCommand(query, DBconn))
{
   object result = command.ExecuteScalar();
   TotalValueLabel.Text = Convert.ToString(result);
}
2021-03-17