在C#中,如有两个dataTable 两个dataTable的表结构一样, 如何比较两个dataTable的
有两个dataTable,两个dataTable的表结构一样,如何比较两个dataTable的行,如果行数据相同,表一将移除与表二中相同的行!请问一下如何实现?...
有两个dataTable, 两个dataTable的表结构一样, 如何比较两个dataTable的行, 如果行数据相同, 表一将移除与表二中相同的行! 请问一下如何实现?
展开
5个回答
展开全部
private DataTable dataTable_1;
private DataTable dataTable_2;
private void Form1_Load(object sender, EventArgs e)
{
InitDt();
if (dataTable_1 != null)
{
for (int i = 1; i <= dataTable_1.Rows.Count; )
{
DataRow dr = dataTable_1.Rows[i - 1];
if (valueInTable(Convert.ToInt32(dr["value"]), dataTable_2))
{
//datatable_1中的行在datatable_2中有相同数据
dataTable_1.Rows.Remove(dr);
}
else
{
i++;
}
}
}
}
private void InitDt()
{
dataTable_1 = new DataTable();
DataColumn dc = new DataColumn("value",typeof(int));
dataTable_1.Columns.Add(dc);
DataRow dr = dataTable_1.NewRow();
dr["value"] = "1";
dataTable_1.Rows.Add(dr);
dr = dataTable_1.NewRow();
dr["value"] = "2";
dataTable_1.Rows.Add(dr);
dr = dataTable_1.NewRow();
dr["value"] = "3";
dataTable_1.Rows.Add(dr);
dataTable_2 = new DataTable();
dc = new DataColumn("value",typeof(int));
dataTable_2.Columns.Add(dc);
dr = dataTable_2.NewRow();
dr["value"] = "1";
dataTable_2.Rows.Add(dr);
dr = dataTable_2.NewRow();
dr["value"] = "2";
dataTable_2.Rows.Add(dr);
}
private bool valueInTable(int value,DataTable dt)
{
//参看value是否在dt中,在返回true
bool bExist = false;
if (dt != null && value != null)
{
if(dt.Columns.Contains("value"))
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToInt32(dr["value"]) == value)
{
bExist = true;
break;
}
}
}
return bExist;
}
private DataTable dataTable_2;
private void Form1_Load(object sender, EventArgs e)
{
InitDt();
if (dataTable_1 != null)
{
for (int i = 1; i <= dataTable_1.Rows.Count; )
{
DataRow dr = dataTable_1.Rows[i - 1];
if (valueInTable(Convert.ToInt32(dr["value"]), dataTable_2))
{
//datatable_1中的行在datatable_2中有相同数据
dataTable_1.Rows.Remove(dr);
}
else
{
i++;
}
}
}
}
private void InitDt()
{
dataTable_1 = new DataTable();
DataColumn dc = new DataColumn("value",typeof(int));
dataTable_1.Columns.Add(dc);
DataRow dr = dataTable_1.NewRow();
dr["value"] = "1";
dataTable_1.Rows.Add(dr);
dr = dataTable_1.NewRow();
dr["value"] = "2";
dataTable_1.Rows.Add(dr);
dr = dataTable_1.NewRow();
dr["value"] = "3";
dataTable_1.Rows.Add(dr);
dataTable_2 = new DataTable();
dc = new DataColumn("value",typeof(int));
dataTable_2.Columns.Add(dc);
dr = dataTable_2.NewRow();
dr["value"] = "1";
dataTable_2.Rows.Add(dr);
dr = dataTable_2.NewRow();
dr["value"] = "2";
dataTable_2.Rows.Add(dr);
}
private bool valueInTable(int value,DataTable dt)
{
//参看value是否在dt中,在返回true
bool bExist = false;
if (dt != null && value != null)
{
if(dt.Columns.Contains("value"))
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToInt32(dr["value"]) == value)
{
bExist = true;
break;
}
}
}
return bExist;
}
展开全部
印象中DataTable有Merge方法,可以进行DataTable的合并
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
吧第一张表的数据复制到第二张表看看程序是否报错就知道两张表的区别了 祝你好运
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sql 把not in
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gewokgw mgowemg wegwe ejgcfjgf fg kgfk
追问
什么??还没看懂 ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询