Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对具有相同ID的列求和_C#_.net - Fatal编程技术网

C# 对具有相同ID的列求和

C# 对具有相同ID的列求和,c#,.net,C#,.net,我有两个数据表,我合并了它们。合并后,我想在datagrid中显示它们,但如果有相同的“id”,则列应该是sum和group 榜样; 现在看起来是这样的 我想要的是,如果“realid”列与下面的相同,则求和它们 我目前编写了以下代码,最后将其绑定到datagrid 那之后我该怎么办 DataTable dtNewTable = new DataTable(); DataTable dtCurtable = new DataTable();

我有两个数据表,我合并了它们。合并后,我想在datagrid中显示它们,但如果有相同的“id”,则列应该是sum和group

榜样; 现在看起来是这样的

我想要的是,如果“realid”列与下面的相同,则求和它们

我目前编写了以下代码,最后将其绑定到datagrid

那之后我该怎么办

        DataTable dtNewTable = new DataTable();
        DataTable dtCurtable = new DataTable();

        private void Form1_Load(object sender, EventArgs e)
        {
            // Add columns
            DataColumn column2 = new DataColumn("counts", typeof(System.Int32));
            DataColumn column3 = new DataColumn("realid", typeof(string));
            dtNewTable.Columns.Add(column2);
            dtNewTable.Columns.Add(column3);


            dtCurtable = dtNewTable.Copy();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            DataRow row;
            Random r = new Random();

            dtNewTable.Clear();


            for (int i = 0; i <= 1; i++)
            {
                row = dtNewTable.NewRow();
                row["counts"] = r.Next(10,40) ;
                row["realid"] = i + " id";
                dtNewTable.Rows.Add(row);

            }

            dtCurtable.Merge(dtNewTable);
            dataGrid1.DataSource = dtCurtable;

        }
DataTable dtNewTable=newdatatable();
DataTable dtCurtable=新的DataTable();
私有void Form1\u加载(对象发送方、事件参数e)
{
//添加列
DataColumn column2=新的DataColumn(“计数”,typeof(System.Int32));
DataColumn column3=新的DataColumn(“realid”,typeof(string));
dtNewTable.Columns.Add(column2);
dtNewTable.Columns.Add(column3);
dtCurtable=dtNewTable.Copy();
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
数据行;
随机r=新随机();
dtNewTable.Clear();

对于(inti=0;i您可以在这里使用Linq,如下所示

var dt1 = dtCurtable.AsEnumerable()
              .GroupBy(r => r.Field<string>("realid"))
              .Select(g =>
              {
              DataRow row = dtCurtable.NewRow();
              row["realid"] = g.Key;
              row["Count"] = g.Sum(r => r.Field<int>("counts"));


              return row;
          }).CopyToDataTable();
var dt1=dtCurtable.AsEnumerable()
.GroupBy(r=>r.Field(“realid”))
.选择(g=>
{
DataRow row=dtCurtable.NewRow();
行[“realid”]=g.键;
行[“计数”]=g.Sum(r=>r.Field(“计数”);
返回行;
}).CopyToDataTable();

您可以像这样在这里使用Linq

var dt1 = dtCurtable.AsEnumerable()
              .GroupBy(r => r.Field<string>("realid"))
              .Select(g =>
              {
              DataRow row = dtCurtable.NewRow();
              row["realid"] = g.Key;
              row["Count"] = g.Sum(r => r.Field<int>("counts"));


              return row;
          }).CopyToDataTable();
var dt1=dtCurtable.AsEnumerable()
.GroupBy(r=>r.Field(“realid”))
.选择(g=>
{
DataRow row=dtCurtable.NewRow();
行[“realid”]=g.键;
行[“计数”]=g.Sum(r=>r.Field(“计数”);
返回行;
}).CopyToDataTable();

DataRow row=dt.NewRow()中的'dt'是什么;我从数据库获取datetime;但是这会抛出一个错误;row2[“SAMPLE\u TIME”]=g.Select(h=>h.Field(“SAMPLE\u TIME”))@johntrue不,你不能这样做,因为该列不属于
groupby
。将此问题与所有相关信息分开发布在一个问题中DataRow=dt.NewRow()中的“dt”是什么?我从数据库获取datetime;但是这会抛出一个错误;row2[“SAMPLE\u TIME”]=g.Select(h=>h.Field(“SAMPLE\u TIME”))@johntrue不,你不能这样做,因为该列不属于
分组依据的一部分。请将此问题与所有相关信息分别发布在一个问题中