2009-03-16 27 views
6

Ứng dụng của tôi là asp.net với vb.Làm thế nào tôi có thể vượt qua một giá trị null cho ngày trong vb.net để sql lưu trữ thủ tục?

Trong trang của tôi, tôi có một hộp văn bản để chuyển ngày. Nếu tôi không nhập ngày và khi nhấp vào gửi, tôi phải chuyển giá trị null cho quy trình được lưu trữ.

Tôi đã thử các mã sau đây như DBNull.ValueDateTime.MinValue. Trong trường hợp đó thay vì null, "#12:00:00#" đang chuyển. Tôi phải vượt qua Null.

Trả lời

15

Chỉ cần gán tham số giá trị DBNull.Value

[EDIT]

Nếu bạn đang sử dụng SqlParameter (nhờ Jon) sau đó bạn có thể thiết lập nó như thế này nếu nó mang lại cho bất kỳ lỗi

parameter.Value = DBNull.Value 
+0

nó mang lại một sự chuyển đổi problem.can nó được giải quyết bằng Convert.ToDateTime (DBNull.Value) – Nandini

+0

DBNull.Value không thể được sử dụng vì nó tạo ra một lỗi "Object không thể được đúc từ DBNull.Value để khác các loại " – Nandini

+0

Mã được cho phải là tốt, nếu" tham số "là một SqlParameter. –

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) 

Vì bạn thiết lập tham số có thể vô hiệu hóa, lỗi sẽ biến mất. Bây giờ vấn đề là NET vượt qua null số nguyên như 0 vì vậy chúng ta cần phải đối phó với điều đó.

Chao

+0

Không nên dòng này là 'pflt_dateto.SqlValue = DBNull.Value'? Tôi nhận được lỗi: "DBNull là một loại và không thể được sử dụng như là một biểu thức" mà không có '.Value' – AllisonC

Các vấn đề liên quan