2009-03-16 3 views
6

Meine Anwendung ist asp.net mit vb.Wie kann ich einen Nullwert für das Datum in vb.net an SQL gespeicherte Prozedur übergeben?

In meiner Seite habe ich eine Textbox für das Verabreichen von Datum. Wenn ich kein Datum eingegeben habe und auf "Senden" geklickt habe, muss ich einen Nullwert an die gespeicherte Prozedur übergeben.

Ich versuchte folgende Codes wie DBNull.Value und DateTime.MinValue. In diesem Fall wird anstelle von Null "#12:00:00#" übergeben. Ich muss Null passieren.

Antwort

15

zuweisen Nur der Parameter den Wert DBNull.Value

[EDIT]

Wenn Sie SqlParameter (Danke Jon) verwenden, dann können Sie es so einstellen, wenn es einen Fehler gibt

parameter.Value = DBNull.Value 
+0

es gibt eine Umwandlung problem.can durch Convert.ToDateTime (DBNull.Value) – Nandini

+0

DBNull.Value kann nicht verwendet werden, gelöst werden, wie es erzeugt einen Fehler „Objekt kann nicht von DBNull.Value anderen gegossen werden Typen " – Nandini

+0

Der angegebene Code sollte in Ordnung sein, wenn" Parameter "ein SqlParameter ist. –

0
Dim pflt_dateto As SqlParameter = cmd.CreateParameter 
     pflt_dateto.Direction = ParameterDirection.Input 
     pflt_dateto.DbType = SqlDbType.Int 
     pflt_dateto.IsNullable = True 
     pflt_dateto.ParameterName = "flt_dateto" 

     If String.IsNullOrEmpty(dateto) Then 
      pflt_dateto.SqlValue = DBNull 
     Else 
      pflt_dateto.SqlValue = dateto 
     End If 

     cmd.Parameters.Add(pflt_dateto) 

Da Sie den Parameter Nullwert eingerichtet haben, wird der Fehler verschwinden. Nun ist das Problem, dass .NET Null-Ganzzahl als 0 übergeben, so dass wir damit umgehen müssen.

Chao

+0

Sollte diese Zeile nicht 'pflt_dateto.SqlValue = DBNull.Value' lauten? Ich habe den Fehler: "DBNull ist ein Typ und kann nicht als Ausdruck verwendet werden" ohne '.Value' – AllisonC

Verwandte Themen