SqlConnection sqlcon = new SqlConnection(GlobalClass.DBLocate);
sqlcon.Open();
string query = "Delete from [Plans] Where Date < '" +
GlobalClass.Date.ToShortDateString() + "'";
SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon);
sda.SelectCommand.ExecuteNonQuery();
我尝试了很多技术,但该数据库中的所有内容都被删除或根本没有。非常感谢
与其将日期作为字符串传入,为什么不使用它的本机日期函数编写 SQL?
由于这个问题被标记为 C# 并且没有任何特定的 SQL 风格,我正在写这个连接到 SQL Server。您也没有提供要从中删除的表的 DDL。该代码基于对 [Date] 列使用正确的列类型,这将是 DateTime 的某种变体。
以下语句应该删除当前 DateTime 的所有内容
string query = "DELETE from [Plans] WHERE Date < GetDate()";
如果您需要在今天之前将其微调到所有内容,那么您可以使用CAST/CONVERT并获取日期部分:
string query = "DELETE from [Plans] WHERE Date < Cast(GetDate() as Date)";
您也不需要为 NonQuery 使用 DataAdapter;它的返回类型是一个int,可以直接赋值
int RowsDeleted = cmd.ExecuteNonQuery();
所以把它们放在一起,我们得到了这个代码块。我还包含在using块中,以便之后正确清理资源。
int RowsDeleted = -1;
using (SqlConnection sqlcon = new SqlConnection(GlobalClass.DBLocate)) {
string query = "DELETE from [Plans] WHERE Date < GetDate()";
SqlCommand cmd = new SqlCommand(query, sqlcon);
sqlcon.Open();
RowsDeleted = cmd.ExecuteNonQuery();
sqlcon.Close();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句