375 Stimmen

SQL Data Reader - Behandlung von Null-Spaltenwerten

Ich verwende einen SQLdatareader, um POCOs aus einer Datenbank zu erstellen. Der Code funktioniert, außer wenn er auf einen Nullwert in der Datenbank trifft. Wenn zum Beispiel die Spalte Vorname in der Datenbank einen Nullwert enthält, wird eine Ausnahme ausgelöst.

employee.FirstName = sqlreader.GetString(indexFirstName);

Wie kann man in dieser Situation am besten mit Nullwerten umgehen?

1voto

Tequila Punkte 804

Ich verwende den unten aufgeführten Code, um Nullzellen in einem Excel-Blatt zu behandeln, das in eine Datentabelle eingelesen wird.

if (!reader.IsDBNull(2))
{
   row["Oracle"] = (string)reader[2];
}

1voto

Liza Boshoff Punkte 31

Netter Einzeiler:

    while (dataReader.Read())
{
    employee.FirstName = (!dataReader.IsDBNull(dataReader.GetOrdinal("FirstName"))) ? dataReader["FirstName"].ToString() : "";
}

1voto

Charles Bretana Punkte 137391

Und / oder ternäre Operatoren mit Zuweisung verwenden:

employee.FirstName = rdr.IsDBNull(indexFirstName))? 
                     String.Empty: rdr.GetString(indexFirstName);

den Standardwert (wenn null) für jeden Eigenschaftstyp ersetzen...

0voto

Frank Hagenson Punkte 883

Convert behandelt DbNull vernünftig.

employee.FirstName = Convert.ToString(sqlreader.GetValue(indexFirstName));

-3voto

scooby Punkte 473

Sie können dies auch jederzeit überprüfen

if(null !=x && x.HasRows)
{ ....}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X