在c#中按列名检查DataRow是否存在?

时间:2010-04-01 20:39:55

标签: c# null 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不属于该表。 我想简单地检查它是否为空,然后设置值。

有没有办法做到这一点?

5 个答案:

答案 0 :(得分:266)

你应该试试

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

我不相信该行本身就有一个列属性。

答案 1 :(得分:16)

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

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

答案 2 :(得分:6)

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

类似的东西:

DataColumnCollection Columns = dtItems.Columns;

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

答案 3 :(得分:-4)

您可以使用

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

答案 4 :(得分:-6)

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