请告诉我,这是否是在DataRow中检查空值并需要返回字符串的正确方法
Convert.ToString(row["Int64_id"] ?? "")
或应该像使用 DBNull.Value 进行检查。
需要比原来更小很多。
if(row["Int64_id"] != DBNull.Value){...}else if{}
使用DataRow.IsNull(string columnName)方法检查数据列是否为空。
if (!row.IsNull("Int64_id"))
{
// here you can use it safety
long someValue = (long)row["Int64_id"];
}
使用列的索引
或者DataColumn
实例来进行重载。如果您确定索引
,请使用索引版本,它比其他选项更快。
string
,并且要小得多。 - AleksPpublic static class DataRowExtensions
{
public static T FieldOrDefault<T>(this DataRow row, string columnName)
{
return row.IsNull(columnName) ? default(T) : row.Field<T>(columnName);
}
}
int id = dataRow.FieldOrDefault<int>("Id");