我在应用程序中首先使用EF模型,也使用存储过程。
我的表的LastStatus
列名称为datetime
数据类型,并且可以为空。
用户填写datetime
值时,它可以正常工作。
这是我的代码:
(@StartAcceptDate IS NULL OR LastStatusDate >= @StartAcceptDate)
AND (@EndAcceptDate IS NULL OR LastStatusDate >= @EndAcceptDate)
但是当用户要选择所有记录时,请释放日期。
许多记录具有null
值。
我的问题在这里:如何将null
作为datetime
从C#传递到SQL Server?
答案 0 :(得分:0)
最好的方法是在存储过程中将默认参数值设置为NULL,而不必将NULL显式传递给存储过程。
CREATE PROCEDURE dbo.Proc
(@param1 INT = NULL,
@param2 INT = NULL ....)
如果您仍然想将C#代码中的NULL
发送到存储过程,则可以使用DBNull.Value
答案 1 :(得分:0)
您可以像这样将DateTime
声明为可空值:
DateTime? StartAcceptDate;
DateTime? EndAcceptDate;
这样,您可以将null
的值分配给变量,然后将其发送到数据库。