Wie konvertiere ich in VB.NET 2003 DBNull in einen String?

Antwort vom

**In VB.NET 2003 konvertierst du `DBNull` nicht direkt in `String`, sondern prüfst zuerst auf `DBNull.Value`; sonst riskierst du Laufzeitfehler.** ```vb Dim s As String If IsDBNull(rs("Feldname")) Then s = "" Else s = CStr(rs("Feldname")) End If ``` ## Warum das wichtig ist `DBNull` ist **nicht** dasselbe wie `Nothing` und auch nicht einfach ein leerer String. Es steht für einen Datenbank-Nullwert. Darum funktioniert so etwas oft nicht sauber: ```vb Dim s As String = CStr(rs("Feldname")) ``` Wenn der Feldwert `DBNull.Value` ist, knallt die Konvertierung. ## Kürzere Variante ```vb Dim s As String = "" If Not IsDBNull(rs("Feldname")) Then s = CStr(rs("Feldname")) ``` ## Praktisch besser Wenn du das öfter brauchst, kapsel es: ```vb Function DbNullToString(ByVal value As Object) As String If IsDBNull(value) Then Return "" Else Return CStr(value) End If End Function ``` Verwendung: ```vb Dim s As String = DbNullToString(rs("Feldname")) ``` ## Wichtiger Unterschied - `DBNull.Value` = Datenbankwert ist NULL - `Nothing` = Objektvariable zeigt auf nichts - `""` = leerer String Das wird oft verwechselt. Für Datenbankfelder musst du auf **`DBNull`** prüfen, nicht nur auf `Nothing`.

Kategorie: Technik Tags: DBNull String VBNET