我有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;解决了这个问题。
答案 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();