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**
我遇到错误
“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 9999 年 12 月 31 日 11:59:59 下午。”
这个问题有什么解决办法吗?
尝试将 SQL Server 端的
@Date
的类型更改为 DATETIME2(7)
然后在您的代码中使用这一行:
cmd.Parameters.Add(new SqlParameter("@Date", SqlDbType.DateTime2));
您的代码看起来没问题,如图所示,但由于本地化问题或您的区域/时间设置有问题,转换可能会发生问题,所以看看这是否有效。
如果您正在使用
SQL Server 2008
及以上,您可以执行以下操作:
第 1 步:将
@Date
数据类型从 DATETIME
更改为 DATETIME2(7)
第 2 步:在您的代码隐藏中,使用以下内容:
SqlDbType.DateTime2
“Date”是关键字,请勿将其用作列名。 如果必须,请将其括在插入语句中的 [] 中:[日期] 但最好将其更改为其他内容,例如“RegistrationDate”。
使用此错误后抛出 System.InvalidOperationException:“无法找到 SQL 类型“DATETIME2”的 Dot Net 数据类型映射。”