110,546
社区成员
发帖
与我相关
我的任务
分享
DataSet ds = new DataSet();
ds.ReadXml(@"E:\Text.xml");
DataTable dt = ds.Tables[0].Clone();
DataTable dt1 = ds.Tables[0].Clone();
for(int i=0;i<ds.Tables.Count;i++)
{
DataRow newRow = ds.Tables[i].Rows[0];
if (Convert.ToInt32(ds.Tables[i].Rows[0]["ZIP"].ToString()) < 200)
{
dt.Rows.Add(newRow.ItemArray);
}
else
{
dt1.Rows.Add(newRow.ItemArray);
}
}
dataGridView1.DataSource = dt;
dataGridView2.DataSource = dt1;
不好意思,之前没有自己试过,也不知道具体的问题,这个是我自己测试过的
dt.Merge(ds.Tables[i]);
dt1.Merge(ds.Tables[i]);
改为
dt.Rows.Add(dt.Tables[0].Rows[i])//i为循环变量
dt1.Rows.Add(dt.Tables[0].Rows[i])//i为循环变量
后面就给不同的DataGridView绑定不同的DataTable就可以了
至于为什么会出现那个错误,是因为new一个DataTable之后,如果没有给他指定列的话,它会有一个默认的列--ID,这样就导致两个表的字段不对应XmlDocument doc = new XmlDocument();
doc.Load("文件名");
foreach (XmlNode node1 in doc.ChildNodes)
{
foreach (XmlNode node2 in node1.ChildNodes)
{
foreach (XmlNode node3 in node2.ChildNodes)
{
if (node3.Name == "ZIP")
{
if (Convert.ToInt32(node3.InnerText) > 200)
{
//你的操作
break;
}
}
}
}
}