通过 c # 中的列名检查 DataRow 是否存在?

我想这样做:

   private User PopulateUsersList(DataRow row)
{
Users user = new Users();
user.Id = int.Parse(row["US_ID"].ToString());
if (row["US_OTHERFRIEND"] != null)
{
user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
return user;
}

但是,如果说 US_OTHERFRIEND不属于该表,则会出错。 我想简单地检查它是否为空,然后设置值。

没有办法吗?

139905 次浏览

You can use

try {
user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
catch (Exception ex)
{
// do something if you want
}
if (row.Columns.Contains("US_OTHERFRIEND"))

你应该试试

if (row.Table.Columns.Contains("US_OTHERFRIEND"))

我不相信行本身具有列属性。

if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
doSomethingUseful;
{
else { return; }

虽然 DataRow 没有 Columns 属性,但它有一个可以检查该列的 Table。

可以使用“您的数据表”的 DataColumnCollection 检查该列是否在集合中。

比如:

DataColumnCollection Columns = dtItems.Columns;


if (Columns.Contains(ColNameToCheck))
{
row["ColNameToCheck"] = "Checked";
}