我使用C#。我有2个数据表dtUser, dtUserNotAllow
。
我想检查dtUser
中的所有行是否包含在数据表dtUserNotAllow
中?如果有,请将其删除。
喜欢这个。
dtUser: user1 user2 user8
dtUserNotAllow: user2
。
这将删除user2。
=> dtUser: user1 user8
foreach(DataRow rows in dtUserNotAllow)
{
if(dtUser.Columns.Contains(rows["user_name"].ToString()))
{
}
}
但显示错误如:
foreach statement cannot operate on variables of type 'System.Data.DataTable' because 'System.Data.DataTable' does not contain a public definition for 'GetEnumerator'
答案 0 :(得分:0)
你必须替换
foreach(DataRow rows in dtUserNotAllow)
带
foreach (DataRow row in dtUserNotAllow.Rows)
删除无效行,您的代码应该类似于
List<String> lUserNotAllow = dtUserNotAllow.AsEnumerable().Select(x => (string)x["user_name"]).ToList();
foreach (DataRow row in dtUser.Rows)
{
if(dtUserNotAllow.AsEnumerable().Any(x => row["user_name"] == x["user_name"]))
{
dtUser.Rows.Remove(row);
}
}
遍历DataTable