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

waq*_*med 100 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;
        }
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个错误US_OTHERFRIEND,说不属于该表.我想简单地检查它是否为null,然后设置值.

有没有办法做到这一点?

Kib*_*bee 273

你应该试试

if (row.Table.Columns.Contains("US_OTHERFRIEND"))
Run Code Online (Sandbox Code Playgroud)

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


小智 17

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

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


小智 6

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

就像是:

DataColumnCollection Columns = dtItems.Columns;

if (Columns.Contains(ColNameToCheck))
{
  row["ColNameToCheck"] = "Checked";
}
Run Code Online (Sandbox Code Playgroud)