Adressierung von Datenbank-Nullwerten: Eine Lösung für „Objekt vom Typ ‚System.DBNull‘ kann nicht in den Typ ‚System.String‘ umgewandelt werden““
Datenbankinteraktionen führen oft zu dem frustrierenden Fehler „Objekt vom Typ ‚System.DBNull‘ kann nicht in Typ ‚System.String‘ umgewandelt werden“.“ Dies entsteht durch den Versuch, den Nullwert einer Datenbank in einen bestimmten Datentyp umzuwandeln. Das Folgende zeigt eine robuste Lösung:
Betrachten Sie zunächst einen grundlegenden Ansatz:
<code class="language-csharp">public string GetCustomerNumber(Guid id) { object accountNumber = DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id)); if (accountNumber == DBNull.Value) { return string.Empty; } else { return accountNumber.ToString(); } }</code>
Diese Methode verarbeitet Nullen effektiv, indem sie eine leere Zeichenfolge zurückgibt. Eine vielseitigere und effizientere Lösung verwendet jedoch eine generische Funktion:
<code class="language-csharp">public static T ConvertFromDBVal<T>(object obj) { if (obj == null || obj == DBNull.Value) { return default(T); } else { return (T)obj; } }</code>
Diese generische Funktion vereinfacht den Originalcode zu:
<code class="language-csharp">return ConvertFromDBVal<string>(accountNumber);</code>
Diese elegante Lösung bietet Typsicherheit und gibt den entsprechenden Standardwert für jeden Datentyp zurück, wodurch die Lesbarkeit und Wartbarkeit des Codes verbessert wird. Es handelt sich um eine überlegene Methode zum Umgang mit Nullwerten, die aus Datenbankabfragen abgerufen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich dbnull effektiv umgehen. Mehrwert beim Abrufen von Daten aus einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!