Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我可以插入MaxDate而不是MinDate_C#_Sql Server_Datetime_Sqldatetime - Fatal编程技术网

C# 为什么我可以插入MaxDate而不是MinDate

C# 为什么我可以插入MaxDate而不是MinDate,c#,sql-server,datetime,sqldatetime,C#,Sql Server,Datetime,Sqldatetime,在使用可为空的datetime列插入my table时,插入datetime.MinDate会引发错误: “将字符数据类型转换为 日期时间数据类型导致 日期时间值超出范围。“ 然而,当我使用MaxDate时,它工作正常吗? 我实际上想将此值插入为null,但在PropertyInfo.SetValue()中传递null值只是自动设置为MinDate,有什么建议吗?的范围是1753-01-01到9999-12-31,而从0001-01-01 12:00:00午夜到9999-12-31 11:59:

在使用可为空的datetime列插入my table时,插入
datetime.MinDate
会引发错误:

“将字符数据类型转换为 日期时间数据类型导致 日期时间值超出范围。“

然而,当我使用MaxDate时,它工作正常吗? 我实际上想将此值插入为null,但在
PropertyInfo.SetValue()
中传递null值只是自动设置为
MinDate
,有什么建议吗?

的范围是1753-01-01到9999-12-31,而从0001-01-01 12:00:00午夜到9999-12-31 11:59:59

因此
DateTime.MinValue
低于Sql Server的最小值,而
DateTime.MaxValue
适合Sql Server
DateTime



使用空值:
DateTime?
可以在内存中使用空值。

您使用的是什么编程语言和数据库系统?我猜您在这里使用反射,就像使用“PropertyInfo.SetValue()”一样,但您能否向我们展示更多的代码,当你在下面的评论中提到这一点时,你属于哪一类呢?很好也很有效。那么:在运行insert时,有没有办法通过c#向这个值插入一个普通的空值?只需在db上使字段为空,如果为空,不要传递任何值。如果你使用SqlCommands,直接使用DBNull.value而不是空值!我尝试根本不设置它,还尝试了PropertyInfo.SetValue(this,DBNull.Value,null),两者仍然在向命令文本发送MinValue…您还可以使用
SqlDateTime.MinValue