1

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

 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();

谢谢,橡树

编辑:感谢您的回答。它不起作用的原因是数据库中的记录太多,默认更新超时为 30 秒或其他什么。这就是为什么没有更改记录。updateDate.CommandTimeout = 0; 解决了这个问题。

4

7 回答 7

5

我认为这一行:

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

应该:

updateDate.Parameters.AddWithValue("@Date", date);
于 2012-05-11T14:18:10.133 回答
2

使用@Date而不是Date

updateDate.Parameters.AddWithValue("@Date", date);
于 2012-05-11T14:18:41.897 回答
1
//Replace
updateDate.Parameters.AddWithValue("Date", date);

// with (watch the @-symbol)
updateDate.Parameters.AddWithValue("@Date", date);
于 2012-05-11T14:19:10.303 回答
1

尝试

updateDate.Parameters.AddWithValue("@Date", date);
于 2012-05-11T14:19:31.910 回答
0

替换Date@Date

updateDate.Parameters.AddWithValue("@Date", date);
于 2012-05-11T14:21:41.807 回答
0

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

于 2012-05-13T16:20:50.003 回答
-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();
于 2012-05-11T14:19:54.930 回答