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 に答える