0

我是 VB.NET 和 MySqL 的新手。我想删除数据库中的记录。使用,

    Dim SQLStatement As String = "DELETE name,date FROM people"
    RetrieveInfos(SQLStatement)

在哪里,

Public Sub RetrieveInfos(ByRef SQLStatement As String)
    Dim cmd As MySqlCommand = New MySqlCommand

    With cmd
        .CommandText = SQLStatement
        .CommandType = CommandType.Text
        .Connection = SQLConnection
        .ExecuteNonQuery()

    End With

    SQLConnection.Close()
    SQLConnection.Dispose()
End Sub

但是有一个InvalidOperationException的错误,我很困惑。我想在不引用“ WHERE number = VALUE ”的情况下删除数据库中的记录,以删除以前记录的值。那可能吗?

任何帮助,将不胜感激。谢谢!

4

1 回答 1

1

你有几个问题:

  1. 由于您正在删除记录,因此您无需在 delete 语句中指定列名。

  2. 如果您的命令成功执行,它将删除 people 表中的每条记录。

  3. 您将在 RetrieveInfos 方法的末尾关闭并释放 SQLConnection。如果此连接在您的代码中的其他位置打开,则只有代码的第一次执行才会起作用。

  4. 如果您的方法正在删除,则不应将其称为 Retrieve。

  5. 该命令应包含在 using 语句中

    Using cmd As MySqlCommand = New MySqlCommand
        With cmd
            .CommandText = SQLStatement
            .CommandType = CommandType.Text
            .Connection = SQLConnection
            .ExecuteNonQuery()
        End With
    End Using
    
于 2012-07-27T02:24:46.877 回答