当前位置: 首页 > 编程语言 > C#

DatetimeProblemSharewith01-01-1900

时间:2023-04-10 13:28:45 C#

DatetimeProblemwith01/01/1900我在sqlserver中有一个datetime列及其可选字段,如果用户决定不输入,那么我想在其中插入值表为NULL,我这样定义:@deadlineDatedatetime=null当我插入到SQL服务器时,我在asp.netprivateDateTime中有这段代码?GetDeadlineDate(){日期时间?getDeadlineDate=null;如果(!string.IsNullOrEmpty(DeadlineDate.SelectedDate)){getDeadlineDate=DateTime.Parse(DeadlineDate.SelectedDate).Date;}如果(!getDeadlineDate.HasValue){返回空值;}返回getDeadlineDate.Value;但问题是:它在sql表中插入1900-01-0100:00:00.000而不是NULL我在这里做错了什么?更新:私人日期时间?GetDeadlineDate(){日期时间?getDeadlineDate=null;如果(!string.IsNullOrEmpty(DeadlineDate.SelectedDate)){getDeadlineDate=DateTime.Parse(DeadlineDate.SelectedDate).Date;}if(!getDeadlineDate.HasValue){返回DBNull.Value;//抛出错误....}returngetDeadlineDate.Value;假设你有:DateTime?日期=GetDate();命令.Parameters.Add("@date").Value=date;如果date==null你想插入SQLNULL即DBNull.Value那么你应该做下一步:约会时间?日期=GetDate();command.Parameters.Add("@date").Value=(object)date??DBNull.Value;这意味着:if(date!=null)//usedateelse//useDBNull.Value如果你想关心函数中可为空的日期时间,你应该在下一步中声明它:privateobjectGetDate(){DateTimedate;返回DateTime.TryParse(selectedDate,outdate)?日期:DBNull.Value;}command.Parameters.Add("@date").Value=GetDate();但我不推荐这个并使用下一个:command.Parameters.Add("@date").Value=(object)GetDate()??DBNull.Value;DBNull.Valuenotnull插入SQLServer时需要.NET中设置DateTime=null,它取DateTime01-01-0001的最小值。我假设您在SQLServer中使用SMALLDATETIME,它的最小值为'01/01/1900'如果您将查询作为参数(字符串类型)发送到另一个执行查询的方法,如下所示:intuserno=123;字符串date_variable=null;stringquery=string.Format(@"INSERTINTOsystem_log(userno,ref_date)values({0},'{1}');",userno,date_variable);obj.executeInsert(query,conn);这可能会在使用ExecuteNonQuery()或其他东西执行时再次保存默认日期。甚至传递(对象)date_variable?DBNull.Value;在这种情况下不起作用那么你可以简单地将date_variable设置为“null”以上就是01/01/1900分享的C#学习教程:日期时间问题的全部内容,如果对你有用还需要了解更多关于C#学习教程,希望大家多多关注——if(string.IsNullOrEmpty(date_variable))date_variable="null";elsedate_variable="'"+date_variable+"'";stringquery=string.Format(@"INSERTINTOsystem_log(userno,ref_date)values({0},{1});",123,date_variable);obj.executeInsert(查询,连接);代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: