Tôi có một FormView nơi tôi kéo dữ liệu từ một bảng (MS Access), và sau đó chèn nó (cộng thêm dữ liệu) vào một bảng khác. Tôi đang gặp vấn đề với ngày tháng.Chèn giá trị null vào các trường ngày?
Bảng đầu tiên có hai trường ngày: date_submitted
và date_updated
. Trong một số hồ sơ, date_updated
để trống. Điều này khiến tôi gặp lỗi dữ liệu không khớp khi cố gắng chèn vào bảng thứ hai.
Có thể là do tôi đang kết nối dữ liệu trường date_updated
từ bảng đầu tiên thành một HiddenField trên FormView. Sau đó nó có giá trị từ HiddenField và cố gắng để chèn nó vào bảng thứ hai:
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
myDateRequestUpdated = hfDateRequestUpdated.Value
'... It then attempts to insert myDateRequestUpdated into the database.
Nó hoạt động khi có một giá trị ở đó, nhưng dường như bạn không thể chèn gì vào một/lần trường ngày trong Access . Tôi cho rằng tôi có thể tạo một câu lệnh chèn thứ hai không chèn vào date_updated
(để sử dụng khi không có giá trị trong date_updated
), nhưng đó là cách duy nhất để làm điều đó? Có vẻ như có một cách dễ dàng hơn/ít dư thừa hơn.
EDIT:
Được rồi. Vì vậy, tôi đã thử chèn SqlDateTime.Null, Nothing, và DBNull.Value. Kết quả SqlDateTime.Null trong giá trị 1/1/1900 được chèn vào cơ sở dữ liệu. "Không có gì" khiến nó chèn vào 1/1/2001. Và nếu tôi cố gắng sử dụng DBNull.Value, nó nói với tôi rằng nó không thể được chuyển đổi thành một chuỗi, vì vậy có lẽ tôi đã không làm điều gì đó khá đúng ở đó. Dù sao đi nữa, tôi đã hy vọng rằng nếu không có gì để chèn rằng trường trong Access sẽ vẫn trống, nhưng có vẻ như nó có để điền vào nó với một cái gì đó ...
EDIT:
tôi có DBNull.Value để làm việc, và nó chèn một giá trị hoàn toàn trống. Vì vậy, đây là mã làm việc cuối cùng của tôi:
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
Dim myDateRequestUpdated = Nothing
If hfDateRequestUpdated.Value = Nothing Then
myDateRequestUpdated = DBNull.Value
Else
myDateRequestUpdated = DateTime.Parse(hfDateRequestUpdated.Value)
End If
Xin cảm ơn tất cả mọi người!
Tôi không hiểu tại sao có một downvote về câu hỏi này. Tôi đã đảo ngược nó, nhưng tôi vẫn còn bối rối. – Fionnuala
Tôi đồng ý, đây là một câu hỏi thú vị. Những trường ngày này luôn luôn cắn tôi. – Steve
Bạn có thể thêm mẫu mã cho biết cách bạn đang chèn dữ liệu không? – phoog