2012-07-27 72 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