MS SQL Datenbank und DBNull

30/03/2008 - 20:01 von Frank Bergmann | Report spam
Hallo,

ich habe folgenden Code geschrieben.

If Me.tbPreis.Text = "" Then
cmd.Parameters.Add("@Preis", SqlDbType.Decimal).Value =BNull.Value
Else
cmd.Parameters.Add("@Preis", SqlDbType.Decimal).Value = tbPreis.Text
End If

Das funktioniert auch gut aber ich möchte dafür eine Function schreiben das
ich nicht immer die "If" Schleife verwenden muss aber irgendwie bekomme ich
das nicht hin.

Das gleiche auch beim Datum.
If Date.TryParse(tbFallig.Text, d) Then
cmd.Parameters.Add("@Fallig", SqlDbType.DateTime).Value = d
Else
cmd.Parameters.Add("@Fallig", SqlDbType.DateTime).Value = DBNull.Value
End If


Frank Bergmann
 

Lesen sie die antworten

#1 Peter Fleischer
30/03/2008 - 20:09 | Warnen spam
"Frank Bergmann" schrieb im
Newsbeitrag news:

ich habe folgenden Code geschrieben.

If Me.tbPreis.Text = "" Then
cmd.Parameters.Add("@Preis", SqlDbType.Decimal).Value =BNull.Value
Else
cmd.Parameters.Add("@Preis", SqlDbType.Decimal).Value = tbPreis.Text



Hi Frank,
einem Feldinhalt vom Typ Decimal eine Zeichenkette zuweisen ist keine gute
Idee. Wenn in tbPreis.Text zufàllig "abc" steht, was soll dann in der
Datenbank erscheinen?

End If

Das funktioniert auch gut aber ich möchte dafür eine Function schreiben
das
ich nicht immer die "If" Schleife verwenden muss aber irgendwie bekomme
ich
das nicht hin.

Das gleiche auch beim Datum.
If Date.TryParse(tbFallig.Text, d) Then
cmd.Parameters.Add("@Fallig", SqlDbType.DateTime).Value = d
Else
cmd.Parameters.Add("@Fallig", SqlDbType.DateTime).Value = DBNull.Value
End If



Da du zulàsst, dass der Anwender ungültige Datumswerte eingeben kann, musst
du schon irgendwie prüfen und dann entscheiden, was zu machen ist. Ein
If...Then ist da genau richtig. Kürzer geht das wirklich nicht.

Viele Gruesse

Peter

Ähnliche fragen