C#两个DataTable之间数据进行比较

sonking 2009-02-20 04:34:26
情况是这样的:

我现在有五个表: table1,table2,table3,table4,table5

这五个表中,table1, table3,table5有共同的几项:xx , yy ,zz,mm,nn ;除此之外,三个表之间还有许多其他不相同的字段。

假如现在我要用到上面的xx , yy ,zz,mm,nn几个字段进行相互验证,如果验证通过,则从table1, table3,table5中分别取其他不同的字段做下一步操作。

其中,table1, table3,table5中xx , yy ,zz,mm,nn一个或者几个字段用来从table2中取table2的数据,再利用table2中的数据取table4中的数据进行操作。

我的问题:

我如何用得到的DataTable1、DataTable2、DataTable3、DataTable4、 DataTable5进行xx , yy ,zz,mm,nn是否相同的判断
...全文
2238 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sonking 2009-05-31
  • 打赏
  • 举报
回复
还有人知道如何实现么?
microinfotech 2009-05-31
  • 打赏
  • 举报
回复
学习了
duzidengdai521 2009-05-31
  • 打赏
  • 举报
回复
期待学习中!~~~~~
sonking 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ztmdsbt 的回复:]
引用 6 楼 splory 的回复:
使用dataview 然后dv.rowfilter 根据是否得到有数据行,再进行下一步操作



用视图应该可可以解决,根据条件写好视图即可
[/Quote]

视图确实可以解决问题,但是,这个问题就没有意义了啊!
ztmdsbt 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 splory 的回复:]
使用dataview 然后dv.rowfilter 根据是否得到有数据行,再进行下一步操作

[/Quote]

用视图应该可可以解决,根据条件写好视图即可
dawnbear 2009-04-20
  • 打赏
  • 举报
回复
判断列名是否一样 就可以得到你要的结果
splory 2009-04-20
  • 打赏
  • 举报
回复
使用dataview 然后dv.rowfilter 根据是否得到有数据行,再进行下一步操作
sonking 2009-04-20
  • 打赏
  • 举报
回复
还是没有能够解决的么???
sonking 2009-03-06
  • 打赏
  • 举报
回复
我说的不是很明白,循环固然可以解决问题,但是,我现在五个表中,有三个表的数据分别都有15万条的数据,用循环,太慢了吧?
sonking 2009-03-06
  • 打赏
  • 举报
回复
不好意思,我现在的造诣还看不懂您的意思。能否详细一点介绍一下?
cisso 2009-02-20
  • 打赏
  • 举报
回复
很简单,第一步循环比较两个Datatable,选出相同列名的Column名存在一个List<string>里,然后再循环这个List<string>,比较两个Datatable
sunshine_anycall 2009-02-20
  • 打赏
  • 举报
回复
linq to dataset
// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable contacts = ds.Tables["Contact"];
DataTable orders = ds.Tables["SalesOrderHeader"];

var query =
from contact in contacts.AsEnumerable()
join order in orders.AsEnumerable()
on contact.Field<Int32>("ContactID") equals
order.Field<Int32>("ContactID")
select new
{
ContactID = contact.Field<Int32>("ContactID"),
SalesOrderID = order.Field<Int32>("SalesOrderID"),
FirstName = contact.Field<string>("FirstName"),
Lastname = contact.Field<string>("Lastname"),
TotalDue = order.Field<decimal>("TotalDue")
};


foreach (var contact_order in query)
{
Console.WriteLine("ContactID: {0} "
+ "SalesOrderID: {1} "
+ "FirstName: {2} "
+ "Lastname: {3} "
+ "TotalDue: {4}",
contact_order.ContactID,
contact_order.SalesOrderID,
contact_order.FirstName,
contact_order.Lastname,
contact_order.TotalDue);
}


如果只是判断存在的话,看最后结果的Count就OK了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧