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

Verwandte Fragen

Kann man in VB.NET 2003 mit "Lines" arbeiten, ohne den String vorher in eine TextBox zu laden?

Ja. Lines ist nur eine bequeme Eigenschaft der TextBox; wenn du keinen Text in eine TextBox laden willst, zerlegst du den String direkt selbst in ein String-Array und arbeitest damit weiter. Der prakt...