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!");

SQL删除查询不工作

您需要做的第一件事是在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条,则应显示删除记录的实际数量。