sqldatetime溢出异常c#.net [英] sqldatetime overflow exception c#.NET
本文介绍了sqldatetime溢出异常c#.net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
string con = ConfigurationManager.ConnectionStrings ["connectionString"].ConnectionString;SqlConnection cn =新的SqlConnection(con);字符串insert_jobseeker =插入到JobSeeker_Registration(密码,提示问题,答案,日期)"+值(@ Password,@ HintQuestion,@ Answer,@ Date)";SqlCommand cmd =新的SqlCommand();cmd.Connection = cn;cmd.CommandType = CommandType.Text;cmd.CommandText = insert_jobseeker;cmd.Parameters.Add(新SqlParameter("@ Password",SqlDbType.VarChar,50));cmd.Parameters ["@ Password"].Value = txtPassword.Text;cmd.Parameters.Add(新SqlParameter("@ HintQuestion",SqlDbType.VarChar,50));cmd.Parameters ["@ HintQuestion"].Value = ddlQuestion.Text;cmd.Parameters.Add(新SqlParameter("@ Answer",SqlDbType.VarChar,50));cmd.Parameters ["@ Answer"].Value = txtAnswer.Text;** cmd.Parameters.Add(new SqlParameter("@ Date",SqlDbType.DateTime));cmd.Parameters ["@ Date"].Value = System.DateTime.Now **
我有一个错误
"SqlDateTime溢出.必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM."
对此有什么解决方案?
解决方案
尝试将SQL Server端 @Date
的类型更改为 DATETIME2(7)
>
然后在代码中改用此行:
cmd.Parameters.Add(new SqlParameter("@ Date",SqlDbType.DateTime2));
如图所示,您的代码看起来还不错,但是由于本地化问题或您的地区/时间"设置有问题,因此转换过程可能正在进行中.
string con = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
SqlConnection cn = new SqlConnection(con);
string insert_jobseeker = "INSERT INTO JobSeeker_Registration(Password,HintQuestion,Answer,Date)"
+ " values (@Password,@HintQuestion,@Answer,@Date)";
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = insert_jobseeker;
cmd.Parameters.Add(new SqlParameter("@Password", SqlDbType.VarChar, 50));
cmd.Parameters["@Password"].Value = txtPassword.Text;
cmd.Parameters.Add(new SqlParameter("@HintQuestion", SqlDbType.VarChar, 50));
cmd.Parameters["@HintQuestion"].Value = ddlQuestion.Text;
cmd.Parameters.Add(new SqlParameter("@Answer", SqlDbType.VarChar, 50));
cmd.Parameters["@Answer"].Value = txtAnswer.Text;
**cmd.Parameters.Add(new SqlParameter("@Date", SqlDbType.DateTime));
cmd.Parameters["@Date"].Value = System.DateTime.Now**
I got error that
"SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM."
What's the solution for this ?
解决方案
Try changing the Type of @Date
on the SQL Server side to DATETIME2(7)
Then in your code use this line instead:
cmd.Parameters.Add(new SqlParameter("@Date", SqlDbType.DateTime2));
Your code looks okay as shown but possibly something is going on with the conversion due to a localization issue or something wrong with your Region/Time settings so see if this works.
这篇关于sqldatetime溢出异常c#.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文