我现在DataSet有两个表,我想把表Table1更新到Table2,
Table1 Table2 Table2(更新后)
ID Name ID Name ID Name
1 张三 1 张三 1 张三
2 李四 2 李五 2 李四
3 王五 4 赵六 3 王五
4 赵六
但是我用Merge()方法合并得到的是,这和我想要的完全不一样,有谁能帮我解决这个问题呀,谢谢!!
Table2
ID Name
1 张三
2 李五
4 赵六
1 张三
2 李四
3 王五
Table1 Table2 Table2(更新后)
ID Name ID Name ID Name
1 张三 1 张三 1 张三
2 李四 2 李五 2 李四
3 王五 4 赵六 3 王五
4 赵六
但是我用Merge()方法合并得到的是,这和我想要的完全不一样,有谁能帮我解决这个问题呀,谢谢!!
Table2
ID Name
1 张三
2 李五
4 赵六
1 张三
2 李四
3 王五
所以一般用Merge(dsnew, True, MissingSchemaAction.Ignore)你不如考虑用遍历Table1.Rows的方法来向Table2添加数据行。
将table2中不存在的行添加到table2中就好了
DataTable dt1=new DataTable();
dt1.Columns.Add("ID");
dt1.Columns.Add("Name");
DataTable dt2=new DataTable();
dt2.Columns.Add("ID");
dt2.Columns.Add("Name");
for(int i=0;i<5;i++)
{
DataRow dr=dt1.NewRow() ;
dr["ID"]=1;
dr["Name"]="name1";
dt1.Rows.Add(dr);
}
for(int i=0;i<5;i++)
{
DataRow dr=dt2.NewRow() ;
dr["ID"]=2;
dr["Name"]="name2";
dt2.Rows.Add(dr);
}
for(int i=0;i<dt2.Rows.Count;i++)
{
string str1="ID=" + dt2.Rows[i]["ID"].ToString()+"and Name='"+dt2.Rows[i]["Name"].ToString()+"'";
string str2="ID DESC";
DataRow[] Arows=dt1.Select(str1,str2);
if(Arows.Length==0)
{
DataRow dr=dt1.NewRow() ;
dr["ID"]=dt2.Rows[i]["ID"];
dr["Name"]=dt2.Rows[i]["Name"].ToString();
dt1.Rows.Add(dr);
}
}
string str="";
for (int i=0;i<dt1.Rows.Count ;i++)
{
str+=dt1.Rows[i]["ID"].ToString()+dt1.Rows[i]["Name"].ToString();
}
MessageBox.Show(str);