我的SQL数据库在表中有一个列,其数据类型为datetime并允许空值(因为我需要它为日期时间值或空白)并且我需要能够读取此值然后将其显示在一个文本框。问题是,在插入和更新时,自动生成的tableadapter(从服务器资源管理器拖动到数据集设计器时)将所有作为日期时间的列设置为在尝试输入null并且无法更改此值时自动抛出异常属性。虽然此列能够在数据库中取空值。
答案 0 :(得分:1)
尝试使用可空的日期时间值:
VB.net
Dim myDate As System.Nullable(Of DateTime) = Nothing
C#:
DateTime? date = null;
现在使用myDate或date分配给列。
编辑: - 假设您正在为Northwind数据库使用表适配器。然后要添加新订单,您可以按如下方式使用它:
orderAdapter.InsertOrder(CustomerID,EmployeeID,
date, ////Use nullable date here
RequiredDate,ShippedDate,ShipVia,Freight,ShipName,
ShipAddress,ShipCity,ShipRegion,ShipPostalCode,ShipCountry);
答案 1 :(得分:1)
This article建议你需要使用可以为空的DateTime变量版本,因为普通的DateTime变量不能包含空值。