2009-03-16 23 views

risposta

15

Basta assegnare il parametro il valore DBNull.Value

[EDIT]

Se si utilizza SqlParameter (grazie Jon) allora si può impostare in questo modo se dà alcun errore

parameter.Value = DBNull.Value 
+0

dà una conversione problem.can esso essere risolto Convert.ToDateTime (DBNull.Value) – Nandini

+0

DBNull.Value non può essere usato per generare un errore "oggetto non può essere lanciato da DBNull.Value all'altro types " – Nandini

+0

Il codice fornito dovrebbe essere corretto, se" parametro "è un parametro Sql. –

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) 

Poiché si imposta il parametro nullable, l'errore scompare. Ora il problema è che .NET passa il numero intero nullo come 0, quindi dobbiamo occuparcene.

Chao

+0

Questa riga non dovrebbe essere 'pflt_dateto.SqlValue = DBNull.Value'? Ho ricevuto l'errore: "DBNull è un tipo e non può essere utilizzato come espressione" senza ".Value" – AllisonC