在datagridview数据库值中求和并显示

时间:2016-07-15 10:27:17

标签: c# database datagridview group-by sum

我希望使用分组依据

datagridview中的值进行求和
string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Restaurant.accdb;Persist Security Info=False;";
string query = "SELECT Column2,SUM(Column1),Receipt No,Date From Total Group By[Column2]";
//SELECT Column2 FROM Total GROUP BY [Column2]
using (OleDbConnection conn = new OleDbConnection(connStr))
{
    using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn))
    {
        DataSet ds = new DataSet();
        if (ds != null)
        {
            adapter.Fill(ds);

            dataGridView1.DataSource = ds.Tables[0];

当这个表单加载它自动关闭时,datagrdview

中没有显示任何内容

2 个答案:

答案 0 :(得分:1)

首先修复您的查询:

string query = "SELECT Column2,SUM(Column1),[Receipt No],Date From Total Group By [Column2],[Receipt No],Date";

和第二次打开连接:

using (OleDbConnection conn = new OleDbConnection(connStr))
            {
                using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn))
                { 
                  conn.Open();
                   ...

修改 你的第二个问题应该是:

"SELECT Column3 As [Table No],SUM(Column1) As Price,[Receipt No],Date From Total Where [Receipt No] = '" + textBox1.Text + "' Group By [Column3],[Receipt No],[Date]"; 

答案 1 :(得分:0)

请检查conn.Open();似乎不见了。

 using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn))
 { 
     conn.Open();
     DataSet ds = new DataSet();
     if (ds != null)
     {
          adapter.Fill(ds);

          dataGridView1.DataSource = ds.Tables[0];
     ......

希望这有帮助!