如何验证该列是否存在于 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方法进行代码?
谢谢你的任何善意的回答。
你也可以使用这个语句
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;