Ответ 1
Проверьте, не находится ли столбец данных с DataRow.IsNull(string columnName)
if (!row.IsNull("Int64_id"))
{
// here you can use it safety
long someValue = (long)row["Int64_id"];
}
Скажите, пожалуйста, это правильный способ проверить NULL в DataRow, если нужно вернуть string
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"];
}
Мы создали класс расширения, который помогает в таких ситуациях.
public 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");