2014-12-10 29 views
11

Powiedz mi proszę czy to jest prawidłowy sposób sprawdzić NULL w DataRow razie potrzeby zwrócić stringJak sprawdzić, czy wartość jest null datarow

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

Albo powinno być jak skontaktować się z DBNull.Value.

Potrzeba o wiele więcej mniejszych niż

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

row [ "NazwaKolumny"] = DBNull.Value, również można spróbować takie rzeczy samemu. Jednym ze sposobów jest użycie debugera! – mybirthname

Odpowiedz

24

Sprawdź, czy kolumna danych nie jest nieważna z DataRow.IsNull(string columnName)

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

zwrócił typ 'string' i o wiele mniejszy – AleksP

+0

Sprawdzanie, czy wartość jest właściwą metodą. :) –

1

stworzyliśmy klasę przedłużacza, który pomaga w takich sytuacjach.

public static class DataRowExtensions 
    { 
    public static T FieldOrDefault<T>(this DataRow row, string columnName) 
    { 
     return row.IsNull(columnName) ? default(T) : row.Field<T>(columnName); 
    } 
    } 

Można użyć następująco:

int id = dataRow.FieldOrDefault<int>("Id");