2014-12-10 13 views
11

Скажите, пожалуйста, это правильно способ проверить NULL в DataRow в случае необходимости вернуть stringКак проверить, если значение равно нулю DataRow

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

Или должен быть как чек с DBNull.Value.

Нужно намного больше, чем меньше

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

строка [ "ColumnName"] = DBNull.Value, также вы можете попробовать такие вещи, как это самостоятельно. Один из способов - использовать debuger! – mybirthname

ответ

24

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

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

вернул тип 'string' и намного меньше – AleksP

+0

Проверка правильности этого значения. :) –

1

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

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"); 
Смежные вопросы