更新SQL数据库日期列

时间:2012-05-11 14:16:31

标签: c# sql-server date

我有SQL服务器数据库和带有日期(日期数据类型)列的表。我想将所有记录的日期列的值更改为今天的日期,但有些东西不起作用,请帮忙。我的代码:

 con.Open();
 DateTime date = DateTime.Now.Date;
 string insStr = "UPDATE tblBusiness SET DateCreated = @Date;";
 SqlCommand updateDate = new SqlCommand(insStr, con);
 updateDate.Parameters.AddWithValue("Date", date);
 updateDate.ExecuteNonQuery();
 con.Close();

谢谢,Oak

编辑: 谢谢你的回答。 它无法工作的原因是因为数据库中的记录太多而且默认的更新超时是30秒或者其他什么。这就是为什么没有记录被改变的原因。 updateDate.CommandTimeout = 0;解决了这个问题。

7 个答案:

答案 0 :(得分:5)

我认为这一行:

updateDate.Parameters.AddWithValue("Date", date);

应该是:

updateDate.Parameters.AddWithValue("@Date", date);

答案 1 :(得分:2)

使用@Date代替Date

updateDate.Parameters.AddWithValue("@Date", date);

答案 2 :(得分:1)

//Replace
updateDate.Parameters.AddWithValue("Date", date);

// with (watch the @-symbol)
updateDate.Parameters.AddWithValue("@Date", date);

答案 3 :(得分:1)

updateDate.Parameters.AddWithValue("@Date", date);

答案 4 :(得分:0)

Date替换为@Date

updateDate.Parameters.AddWithValue("@Date", date);

答案 5 :(得分:0)

感谢您的回答。 它无法工作的原因是因为数据库中的记录太多而且默认的更新超时是30秒或者其他什么。这就是为什么没有记录被改变的原因。 updateDate.CommandTimeout = 0;解决了这个问题。

答案 6 :(得分:-1)

这应该有效。如果要更新所有记录,则不需要where子句。

con.Open();
 DateTime date = DateTime.Now.Date;
 string insStr = "UPDATE tblBusiness SET DateCreated = " + date;
 SqlCommand updateDate = new SqlCommand(insStr, con);
 updateDate.ExecuteNonQuery();
 con.Close();