SQL删除查询不工作
本文关键字:工作 查询 删除 SQL | 更新日期: 2023-09-27 18:07:09
我试图删除表上的最新条目,但是我使用的SQL查询根本没有删除任何内容。我使用断点并多次阅读代码,无法找到任何错误,有人能告诉我我做错了什么吗?
private void button1_Click(object sender, EventArgs e)
{
string connectionString;
var path = @"C:'Users'Administrator'Desktop'connstring.txt";
using (StreamReader sr = new StreamReader(path))
{
connectionString = sr.ReadLine();
}
var connection = new SqlConnection(connectionString);
MessageBox.Show("Um grupo de trabalhadores, está agora a apagar os seus dados, aguarde.");
string queryString = string.Empty;
using (connection)
{
connection.Open();
queryString = "DELETE FROM wgcdoccab WHERE numdoc IN (SELECT TOP 100 numdoc FROM WGCDOCCAB WHERE serie ='1' and tipodoc ='FSS' and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),dateadd(dd, -1, getdate()),120) ORDER BY numdoc DESC)";
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Close();
}
MessageBox.Show("Apesar de cansados e sujos os trabalhadores mandam avisar que foi tudo apagado!");
您需要做的第一件事是在command
上调用ExecuteNonQuery
:
int deletionCount = command.ExexuteNonQuery();
Console.WriteLine("Deleted {0} items", deletionCount);
接下来,您需要确保命令本身是关闭的,而不是它的连接。using
语句会关闭连接,所以不用担心。
修改后的代码应该是这样的:
using (var connection = new SqlConnection(connectionString)) {
connection.Open();
MessageBox.Show("Um grupo de trabalhadores, está agora a apagar os seus dados, aguarde.");
string queryString = string.Empty;
queryString = "DELETE FROM wgcdoccab WHERE numdoc IN (SELECT TOP 100 numdoc FROM WGCDOCCAB WHERE serie ='1' and tipodoc ='FSS' and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),dateadd(dd, -1, getdate()),120) ORDER BY numdoc DESC)";
using (SqlCommand command = new SqlCommand(queryString, connection)) {
int deletionCount = command.ExexuteNonQuery();
MessageBox.Show("Deleted "+deletionCount+" items");
}
}
如果表中包含100条匹配记录,则此代码应显示Deleted 100 items
,如果表中匹配记录少于100条,则应显示删除记录的实际数量。