2017-07-25 149 views
-1

我無法從我的數據庫中刪除數據。這是我的代碼:無法刪除MS Access數據庫中的數據

Dim DeleteData As OleDbCommand 

conn.open() 
sql1 = ("DELETE FROM Etat_projet WHERE Nom_du_client= &TextBox1.Text") 

DeleteData = New OleDbCommand(sql1, conn) 
DeleteData.ExecuteNonQuery() 
Me.Close() 

這是我的數據庫的採集和記錄仍然存在:

enter image description here

+2

一個想法是讀[問]和取[旅遊] – Plutonix

+0

嘗試使用的OleDbConnection。 –

+0

快速猜測:'「從Etat_projet刪除WHERE Nom_du_client =&TextBox1.Text」=>將其改爲'「從Etat_projet刪除WHERE Nom_du_client ='」&TextBox1.Text&「'」' – joanolo

回答

2

您需要通過TextBox1.Text作爲參數到命令,如下所示:

sql1 = "DELETE FROM Etat_projet WHERE Nom_du_client = ?" 
DeleteData = New OleDbCommand(sql1, conn) 
DeleteData.Parameters.Add("@Nom", OleDbType.[Type]).Value = TextBox1.Text 
DeleteData.ExecuteNonQuery() 

請注意,我已經使用OleDbType.[Type]。您需要將其替換爲您爲列指定的數據類型。

我也會考慮實施Using

有時你的代碼需要非託管資源,如文件句柄,COM包裝或SQL連接。使用塊可以保證在您的代碼完成後處置一個或多個這樣的資源。這使它們可供其他代碼使用。

Using con As New OleDbConnection(connectionString), 
     cmd As New OleDbCommand("DELETE FROM Etat_projet WHERE Nom_du_client = ?", con) 

    cmd.Parameters.Add("@Nom", OleDbType.[Type]).Value = TextBox1.Text 
    cmd.ExecuteNonQuery() 

End Using