如何验证该列是否存在于 DataRow 对象中

本文关键字:存在 是否 DataRow 对象 何验证 验证 | 更新日期: 2023-09-27 18:27:29

private int EmploymentID { get; set; }
private void MapFields(DataRow row)
{
        if(row.HasError)
          EmploymentID = Convert.ToInt32(row["EmploymentID"].ToString());
}

该代码显示它验证 DataRow 对象的行是否有错误,但我想验证它是否存在。有没有一种方法可以代替使用DataRow的HasError方法进行代码?

谢谢你的任何善意的回答。

如何验证该列是否存在于 DataRow 对象中

你也可以使用这个语句

row.Table.Columns.Contains("EmploymentID")

DataRow 有一个 Table 属性,引用它来自的 DataTable。DataTable 有一个 Columns 属性,它是一个 DataColumnCollection。

枚举此列表将允许您确定表是否包含所需的列。请注意,表上的所有行都具有相同的列。

例如:

bool containsColumn = row.Table.Columns.Any(column => column.ColumnName == "EmploymentID");

值得指出的是,您可能需要检查与 DBNull 的相等性,除非您 100% 确定 EmploymentID 永远不会返回 null。

此外,如果 EmploymentID 列类型为整数,则可以通过使用直接强制转换来避免任何类型转换的需要:

EmploymentID = (int)row["EmploymentID"]; 

或者,使用DataRowExtensions进行更简洁的方法,该方法会为您执行所有空检查:

EmploymentID =  row.Field<int?>("EmploymentID"); 

如果 EmploymentID 不是可为空的整数,则可以合并如下值:

EmploymentID =  row.Field<int?>("EmploymentID") ?? 0;