62,046
社区成员
发帖
与我相关
我的任务
分享
select productid,bingrade,sum(quantity) from table group by productid,bingrade
//新建datatable,存储合并结果;
DataTable dt = new DataTable();
dt.Columns.Add("producitid", typeof(String));
dt.Columns.Add("bingrade", typeof(String));
dt.Columns.Add("quantity", typeof(int));
for(int i=0;i<datatable.Rows.Count;i++)
{
String productid=datatable.Rows[i][0].ToString();
String bingrade=datatable.Rows[i][1].ToString();
int quantity=Int32.Parse(datatable.Rows[i][2].ToString());
for(int j=0;j<datatable.Rows.Count;j++)
{
if(datatable.Rows[i][0].ToString()==datatable.Rows[j][0].ToString() && datatable.Rows[i][0].ToString()==datatable.Rows[j][0].ToString() && i!=j)
{
quantity=quantity+Int32.Parse(datatable.Rows[j][2].ToString());
}
}
DataRow dr=dt.NewRow();
dr[0]=productid;
dr[1]=bingrade;
dr[2]=quantity;
dt.Rows.Add(dr);
}
//方法有点笨,还没测试,楼主参考
DataTable dt = new DataTable();
dt.Columns.Add("productid");
dt.Columns.Add("bingrade");
dt.Columns.Add("quantity");
dt.Rows.Add(new object[] { "111", "a", "20" });
dt.Rows.Add(new object[] { "111", "a", "10" });
dt.Rows.Add(new object[] { "111", "b", "30" });
dt.Rows.Add(new object[] { "222", "c", "50" });
dt.Rows.Add(new object[] { "222", "c", "40" });
DataTable groupTable = dt.Clone();
groupTable.PrimaryKey = new DataColumn[]{groupTable.Columns[0],groupTable.Columns[1]};
foreach (DataRow dataRow in dt.Rows)
{
DataRow groupRow = groupTable.Rows.Find(new object[] { dataRow["productid"], dataRow["bingrade"] });
if (groupRow == null)
{
groupTable.Rows.Add(dataRow.ItemArray);
}
else
{
groupRow["quantity"] = Convert.ToInt32(groupRow["quantity"]) + Convert.ToInt32(dataRow["quantity"]);
}
}
GridView1.DataSource = groupTable;
GridView1.DataBind();
for(int i=0;i<datatable.Rows.Count;i++)
{
//datatable.Rows[i][0].ToString()
}