sqldatetime溢出异常c#.net [英] sqldatetime overflow exception c#.NET

查看:75
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆