VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 663|回复: 5

DataGridView 的合计项问题

[复制链接]

2

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-20 09:30:01 | 显示全部楼层 |阅读模式
数据是从数据库读出到datatable然后在窗口底部添加合计项
string selectCommand="select ID,GXID,GXname,GXprice from WS_GX where ProductID=1";
dataAdapter = new OleDbDataAdapter(selectCommand, conn);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "WS_GX");               
DataTable table = ds.Tables["WS_GX"];
object objSum = table.Compute("Sum(GXprice)", null);
bindingSource1.DataSource = table;

上面代码中objSum是要来计算合计的

但无论我的
selectCommand="select ID,GXID,GXname,GXprice from WS_GX where ProductID=1";
还是
selectCommand="select ID,GXID,GXname,GXprice from WS_GX";


合计项的值都是按照数据库中所有项目加起来,导致合计错误,应该如何解决啊????
回复

使用道具 举报

2

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-6-25 14:00:01 | 显示全部楼层
我的代码

// Get summary first
object objSum = newTable.Compute("Sum(数量)", null );//newTable 是你要求和的dataTable
                                                     //“数量”是你表中要求和的字段
// Add new row
DataRow sum = newTable.NewRow();
sum[0] = "合计";
sum["数量"] = objSum.ToString();

newTable.Rows.Add(sum);

回复

使用道具 举报

1

主题

8

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-24 06:45:01 | 显示全部楼层
没有new row?
bindingSource1.DataSource = table;?
//偶写的一个不恰当的函数
private void SelData(string selquery,string tablename)
        {
            OleDbDataAdapter da = new OleDbDataAdapter(selquery, mc);
            DataSet ds = new DataSet();
            da.Fill(ds, tablename);
            DataTable dt = ds.Tables[tablename];  
            DataRow dr = ds.Tables[tablename].NewRow();
            dataGridView1.DataSource = ds.Tables[tablename];
            object objSum = dt.Compute("Sum(GXprice)", null);
            string san = objSum.ToString();
            if (san=="")//GXprice 为空时..如果无有为空的可省此判断!
            {
                objSum = (object)0;
            }
            dr[GXprice] = objSum.ToString();
            ds.Tables[tablename].Rows.Add(dr);
        }
回复

使用道具 举报

2

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-7-24 17:15:01 | 显示全部楼层
谢谢,我试一下
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-24 19:30:01 | 显示全部楼层
object objSum = table.Compute("Sum(GXprice)", null);
你用了"Sum()" 哪应该用"Group by"


object objSum = table.Compute("Sum(GXprice)", "Group by(除GXprice外 根据要统计字段)");
回复

使用道具 举报

2

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-7-26 09:00:01 | 显示全部楼层
明白了
object objSum = table.Compute("Sum(GXprice)", "ProductID="+requestID);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表