Wpf 通过VB使用LINQtoSQL在SQL中的smalldatetime列中插入空值?

Wpf 通过VB使用LINQtoSQL在SQL中的smalldatetime列中插入空值?,wpf,vb.net,linq-to-sql,Wpf,Vb.net,Linq To Sql,我在SQL中有一个smalldatetime列,它可以有一个空值,但是当我尝试使用SqlTypes.SqlDateTime.null和LINQtoSQL插入一个空值时,它会将值放在1/1/1900中,而不是空值 插入null的最佳方法是什么,或者我现在正在这样做。如果我现在使用的是正确的方法,那么应该采取什么措施来防止WPF应用程序中的字段显示1/1/1900 数据库是SQL2008 谢谢 (编辑)代码 结束函数您是否尝试过null而不是SqlTypes.SqlDateTime.null? 数据

我在SQL中有一个smalldatetime列,它可以有一个空值,但是当我尝试使用SqlTypes.SqlDateTime.null和LINQtoSQL插入一个空值时,它会将值放在1/1/1900中,而不是空值

插入null的最佳方法是什么,或者我现在正在这样做。如果我现在使用的是正确的方法,那么应该采取什么措施来防止WPF应用程序中的字段显示1/1/1900

数据库是SQL2008

谢谢

(编辑)代码


结束函数

您是否尝试过null而不是SqlTypes.SqlDateTime.null?
数据库表行是否显示null?

您只需使用可为null的数据类型即可。查看函数的签名,看起来您正在为maintRenew传递SqlDateTime

ByVal maintRenew As SqlTypes.SqlDateTime
相反,请尝试传递可为空的日期时间,例如:

ByVal maintRenew As DateTime?

在调用函数中,您可以传入一个标准的“Nothing”(在(C#中为null),而不是传入一个DBNull,或所需的日期时间。

您可以发布实际插入的代码吗?Rippo,添加了代码!我认为最初它不会有帮助。它必须是SqlTypes.SqlDateTime.Null,否则LINQ将不会插入/更新…当然,除非它是实际日期。以前使用存储过程,我可以提交格式正确的字符串,即'20090808 08:00:00'or仅为String.Empty,它基本上会忽略预期的工作。但是,通过LINQtoSQL识别数据类型,它需要日期格式或适当的Sql null。嘿,感谢JamesPickrell,您再次找到了工作完美的解决方案。
ByVal maintRenew As DateTime?