Как проверить, является ли значение Datarow равным нулю

Скажите, пожалуйста, это правильный способ проверить NULL в DataRow, если нужно вернуть string

 Convert.ToString(row["Int64_id"] ?? "")

Или должно быть похоже на проверку с помощью DBNull.Value.

Требуется гораздо меньше, чем

if(row["Int64_id"] != DBNull.Value){...}else if{}

Ответ 1

Проверьте, не находится ли столбец данных с DataRow.IsNull(string columnName)

if (!row.IsNull("Int64_id"))
{
  // here you can use it safety
   long someValue = (long)row["Int64_id"];
}

Ответ 2

Мы создали класс расширения, который помогает в таких ситуациях.

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");