首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

SqlDateTime 溢出。务必介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间

2012-12-23 
SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。这个是哪里的问题 帮忙

SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
这个是哪里的问题 帮忙解决一下
[解决办法]
输入的时间超过了系统限制的范围,你调试下把看看报错的那个地方时间值是多少
[解决办法]

引用:
输入的时间超过了系统限制的范围,你调试下把看看报错的那个地方时间值是多少
就是当天的时间啊
[解决办法]
你的时间时初始化的时间 0001-01-01 

不要用DateTime.Min

数据库的范围和.net 的时间 两个的范围不一致
[解决办法]
引用:
你的时间时初始化的时间 0001-01-01 

不要用DateTime.Min

数据库的范围和.net 的时间 两个的范围不一致
我没有用过DateTime.Min
[解决办法]
当天时间在数据库里用getdate,在C#里用datetime.now
[解决办法]
你是如何用当前时间的,把你获取的当前时间贴出来看看
[解决办法]
有些时候时间溢出是因为获取的时间经过了转换等处理,你调试一下得到的时间日期值(或者给变量的赋值)是不是介于1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间!
[解决办法]
引用:
有些时候时间溢出是因为获取的时间经过了转换等处理,你调试一下得到的时间日期值(或者给变量的赋值)是不是介于1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间!
赋值正确
[解决办法]
把你出错地方的代码贴出来!才会有更多人给你解答!
[解决办法]
引用:
把你出错地方的代码贴出来!才会有更多人给你解答!
 string NewsTitle = txtNewsTitle.Text.Trim();
            string NewsContent = Request.Form["content"];

            info.NewsTitle = NewsTitle;
            info.NewsContent = NewsContent;
            if (txtBeginDate.Text.Trim() != "")
            {
                info.BeginDate = Convert.ToDateTime(txtBeginDate.Text.Trim());
            }
            if (txtEndDate.Text.Trim() != "")
            {
                info.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
            }
            long ActivityID = -1;
            try
            {
                ActivityID = Convert.ToInt64(Request.Form[hidActivityID.UniqueID]);
            }
            catch { }


[解决办法]
Database db = DatabaseFactory.CreateDatabase();
    DbCommand cmd = db.GetSqlStringCommand(SQL_INSERT);
            db.AddInParameter(cmd, "@NewsID", DbType.Int64, info.NewsID);
            db.AddInParameter(cmd, "@CategoryID", DbType.Int32, info.CategoryID);
            db.AddInParameter(cmd, "@ActivityID", DbType.Int64, info.ActivityID);
            db.AddInParameter(cmd, "@ActivityName", DbType.String, info.ActivityName);
            db.AddInParameter(cmd, "@NewsTitle", DbType.String, info.NewsTitle);
            db.AddInParameter(cmd, "@NewsContent", DbType.String, info.NewsContent);
            db.AddInParameter(cmd, "@BeginDate", DbType.DateTime, info.BeginDate);
            db.AddInParameter(cmd, "@EndDate", DbType.DateTime, info.EndDate);
            db.AddInParameter(cmd, "@CreateDate", DbType.DateTime, info.CreateDate);
            db.AddInParameter(cmd, "@ActivityBeginDate", DbType.DateTimeinfo.ActivityBeginDate);
            db.AddInParameter(cmd, "@ActivityEndDate", DbType.DateTime, info.ActivityEndDate);
 
            db.AddInParameter(cmd, "@CompanyAbbreviationName", DbType.String, info.CompanyAbbreviationName);
db.ExecuteScalar(cmd);



最后报错
[解决办法]
txtBeginDate.Text和txtEndDate.Text的值是什么?
[解决办法]
你可能是忘记给某个时间字段赋值了,你检查一下,比如一个模型层对象里有AddTime和ModifyTime,而你只给一个字段赋了值,却忘记另一个字段了,就会出现这个错误,其实并不是C#中的DateTime的最小日期超出了Sql的日期范围,而是某个日期字段本来该赋值的,但你却没有给它赋值,系统就自动用C#的DateTime的最小日期给它赋了值,结果就造成这个错误了,它这个错误是提示你有一个字段没有赋值,而不是表面上说的那个意思,你好好检查一下
[解决办法]

引用:
txtBeginDate.Text和txtEndDate.Text的值是什么?


是充文本框取出来的值 
[解决办法]
引用:
引用:txtBeginDate.Text和txtEndDate.Text的值是什么?

是充文本框取出来的值

你换成
 info.BeginDate = Convert.ToDateTime(txtBeginDate.Text.Trim()+ " 00:00:00");
info.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim()+ " 00:00:00");

试试。

[解决办法]
引用:
引用:把你出错地方的代码贴出来!才会有更多人给你解答! string NewsTitle = txtNewsTitle.Text.Trim();
            string NewsContent = Request.Form["content"];

            info.NewsTitle = NewsTi……


你给值是正确的,但应该存在细节问题,你断点跟综一下,txtBeginDate.Text.Trim()得的值是什么?
有可能不是你想像的那个值,断点跟综一下
[解决办法]
你insert那么多字段,所有字段都有赋值吗?特别是有日期的字段。
数据库中你insert是否可以为空,不能为空的话,就必须给其赋值

热点排行