C#日期-时间算法过流错误
我已经为存储当前日期和时间值编写了一个代码。前天它完全按照我的要求工作。但今天它显示了错误C#日期-时间算法过流错误,c#,sql,datetime,C#,Sql,Datetime,我已经为存储当前日期和时间值编写了一个代码。前天它完全按照我的要求工作。但今天它显示了错误“将表达式转换为数据类型datetime时出现算术溢出错误。该语句已终止。” 有人能帮我吗?这是我的密码 protected void Button1_Click(object sender, EventArgs e) { con.Open(); string q; q = "insert into tbl_MR(RequirementFor,Category,MRNO,Create
“将表达式转换为数据类型datetime时出现算术溢出错误。该语句已终止。”
有人能帮我吗?这是我的密码
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
string q;
q = "insert into tbl_MR(RequirementFor,Category,MRNO,CreatedBy,CreatedDate)values(@rf,@cat,@mr,@cb,@cd)";
SqlCommand cmd = new SqlCommand(q, con);
cmd.Parameters.AddWithValue("@rf", CCddl.SelectedItem.Text);
cmd.Parameters.AddWithValue("@mr", TextBox1.Text.Trim());
cmd.Parameters.AddWithValue("@cat", TextBox3.Text.Trim());
cmd.Parameters.AddWithValue("@cb", Session["loginid"].ToString());
string cd1, date1;
cd1 = System.DateTime.Today.ToShortDateString();
date1 = Convert.ToDateTime(cd1).ToString("dd/MM/yyyy");
cmd.Parameters.AddWithValue("@cd", date1.ToString());
cmd.ExecuteNonQuery();
string alertmessage = "";
alertmessage = "Component Details Saved";
this.CreateMessageAlert(this, alertmessage, "alertKey");
con.Close();
}
将
date1
格式更改为yyyy/MM/dd
或MM/dd/yyyy
昨天是2012年6月12日。实际插入数据库的可能是2012年12月6日(2006年12月与2012年6月)。既然今天是13号,您将得到一个例外,因为没有13个月。将您的
date1
格式更改为yyyy/MM/dd
或MM/dd/yyyyy
昨天是2012年6月12日。实际插入数据库的可能是2012年12月6日(2006年12月与2012年6月)。今天是13号,你得到了一个例外,因为没有13个月。听起来你有文化信息差异。您可以尝试将日期的ToString()方法修改为其他格式
cmd.Parameters.AddWithValue("@cd", System.DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture));
听起来你的文化信息不一致。您可以尝试将日期的ToString()方法修改为其他格式
cmd.Parameters.AddWithValue("@cd", System.DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture));
要将日期发送到SQL Server,不需要将日期转换为字符串 而不是所有这些:
string cd1, date1;
cd1 = System.DateTime.Today.ToShortDateString();
date1 = Convert.ToDateTime(cd1).ToString("dd/MM/yyyy");
cmd.Parameters.AddWithValue("@cd", date1.ToString());
只要这样做:
cmd.Parameters.AddWithValue("@cd", DateTime.Today);
要将日期发送到SQL Server,不需要将日期转换为字符串 而不是所有这些:
string cd1, date1;
cd1 = System.DateTime.Today.ToShortDateString();
date1 = Convert.ToDateTime(cd1).ToString("dd/MM/yyyy");
cmd.Parameters.AddWithValue("@cd", date1.ToString());
只要这样做:
cmd.Parameters.AddWithValue("@cd", DateTime.Today);
检查
DateTime
是否在有效范围内也是一个好主意DateTime
的最小日期为0000/01/01
,而SQL DateTime的最小日期为1753/01/01
。在这种情况下也可能发生“算术溢出”错误。最好检查日期时间
是否在有效范围内DateTime
的最小日期为0000/01/01
,而SQL DateTime的最小日期为1753/01/01
。在这种情况下也可能发生“算术溢出”错误。