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

我想要做这样的事情:

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

没有办法做到这一点?

你应该试试

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

我不认为这行有一个列属性本身。

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

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

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

就像是:

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

您可以使用

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