C# 判断当前值是否存在datatable的指定列中。

首先我有一个datatable 跟一个string [] 数组,大小都不限制。

其中datatable的第一列中有的值,可能在string[]的数组中存在。现在需要通过筛选、判断。
组成SQL语句,把不在string[]数组里面的行添加到数据库中。
请各位大婶帮帮好好分析分析。。。。在线等!!!
datatable ExceDT=new datatble();

string[] KK = StrKeys.ToString().Split('|');
for (int i = 0; i < ExceDT.Rows.Count; i++)
{
for (int j = 0; j < KK.Length - 1; j++)
{
if (ExceDT.Rows[i][0].ToString() != KK[j].ToString())
{
//////// 这里就始终进来执行。

}
}
}

你上面有两个for循环,外面那个是必要的,里面那个可以去掉,改成KK.contains(ExceDT.Rows[i][0].ToString())来判断。还有你第二个for循环的写法也是错的,有一个不同你就执行了么?应该是所有都不同才会执行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-14
datarow[] dr = ExceDT.select("列名 not in (1.2.3.4.5.6.7.8。。。。。)");

这样可以把行取出来,你试试看!去除了行剩下的操作就不要说了吧!追问

我试过了,用datarow[] 很麻烦,而且得出来的也不好整理,
所以我才使用一个集合跟一个table。这样出来的数据好整理!
麻烦你看看还有什么好使的招吗??

追答

最后是要把筛选的datatable存进数据库吗!?
你可以新建一个datatable,把datarow[] 丢进去啊,在用批量更新吧datatable丢进数据库里!这样我觉得是最快的!

本回答被网友采纳
第2个回答  2013-09-14
datatable有取字段的属性,直接对比一下就ok了。
第3个回答  2013-09-14
for循环写一个呗。。。