2012-07-27 51 views
0

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

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”以删除先前记录的值。那可能吗?

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

+0

看来你需要更新语句而不是DELETE语句。 – Thinhbk 2012-07-27 02:20:22

+0

我该怎么做?谢谢 – Mineko 2012-07-27 02:22:50

回答

1

你有几个问题:

  1. 你不会在delete语句中指定列名,因为您要删除的记录。

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

  3. 您正在关闭并在RetrieveInfos方法的末尾处置SQLConnection。如果此连接在您的代码的其他地方打开,则只有代码的第一次执行才有效。

  4. 如果正在删除,则不应调用您的方法。

  5. 该命令应被包裹在一个using语句

    Using cmd As MySqlCommand = New MySqlCommand 
        With cmd 
         .CommandText = SQLStatement 
         .CommandType = CommandType.Text 
         .Connection = SQLConnection 
         .ExecuteNonQuery() 
        End With 
    End Using 
    
+0

另外:你正试图从列表中删除列,你不是吗?这不是更改数据库模式的正确语法。如果您试图删除列中的实际值,这也是错误的。你需要为此更新命令。 – dykeag 2012-07-27 02:31:41