C# 比较两个数据集,如果发现记录匹配,则更新行
我有两个数据集: 数据集1:ds1C# 比较两个数据集,如果发现记录匹配,则更新行,c#,.net,dataset,C#,.net,Dataset,我有两个数据集: 数据集1:ds1 **Year Period Allowed** 2012 1 2013 2 2014 3 2015 5 数据集2:ds2 **Year Period** 2
**Year Period Allowed**
2012 1
2013 2
2014 3
2015 5
数据集2:ds2
**Year Period**
2012 1
2012 2
2014 3
2014 5
所需数据集:
**Year Period Allowed**
2012 1 0
2013 2 1
2014 3 0
2015 5 1
我想逐一比较这两个数据集行(年和期间),并确定记录是否相同
然后在第一个数据集的列(允许)中添加值“0”(即ds1)
注意:第一个数据集的年份和期间必须与第二个数据集的年份和期间相同
这是我的密码:
for (int ds = 0; ds < ds1.Tables[0].Rows.Count; ds++)
{
string year = ds1.Tables[0].Rows[ds]["YEAR"].ToString();
string per = ds1.Tables[0].Rows[ds]["PER"].ToString();
for (int count = 0; count < ds2.Tables[0].Rows.Count; count++)
{
string year1 = dsAllwedUser.Tables[0].Rows[count]["YEAR"].ToString();
string per1 = dsAllwedUser.Tables[0].Rows[count]["PER"].ToString();
if (year == year1 && per == per1)
{
row["Allowed"] = "0";
ds1.Tables[0].AcceptChanges();
row.SetModified();
}
else
{
row["Allowed"] = "1";
ds1.Tables[0].AcceptChanges();
row.SetModified();
}
}
}
for(int-ds=0;ds
如果我错了,请纠正我…提前谢谢 比较一个数据集与另一个数据集的好方法是使用
私有静态数据集GetAllowdDataSet(数据集ds1、数据集ds2)
{
数据集ds=新数据集();
Add(newdatatable());
表[0].Columns.Add(“年”);
表[0].Columns.Add(“PER”);
表[0].Columns.Add(“允许”);
DataRow[]dr=null;
对于(int i=0;i0)
{
表[0].Rows.Add(新字符串[]{year,per,“0”});
}
其他的
{
表[0].Rows.Add(新字符串[]{year,per,“1”});
}
}
返回ds;
}
private static DataSet GetAllowdDataSet(DataSet ds1, DataSet ds2)
{
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("YEAR");
ds.Tables[0].Columns.Add("PER");
ds.Tables[0].Columns.Add("ALLOWED");
DataRow[] dr = null;
for (int i = 0; i < ds1.Tables[0].Rows.Count; i++)
{
string year = Convert.ToString(ds1.Tables[0].Rows[i]["YEAR"]);
string per = Convert.ToString(ds1.Tables[0].Rows[i]["PER"]);
dr = ds2.Tables[0].Select(string.Format(" YEAR = '{0}' AND PER = '{1}'", year, per));
if (dr.Count() > 0)
{
ds.Tables[0].Rows.Add(new String[] { year, per, "0" });
}
else
{
ds.Tables[0].Rows.Add(new String[] { year, per, "1" });
}
}
return ds;
}