我尝试通过让用户选择要删除的行来删除MS访问数据库中的一行,但我不断收到错误ExecuteNonQuery: Connection property has not been initialized.
这是我尝试过的代码:
Dim Conn As OleDbConnection = New OleDbConnection
Dim Comm As OleDbCommand
Dim Comm1 As OleDbCommand
Dim provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
Dim dataFile = "F:\Database.accdb"
Comm = New OleDbCommand("DELETE * from Orders WHERE [OrderNumber]=@Orderno")
Comm1 = New OleDbCommand("DELETE * from Order_Details WHERE [OrderNumber]=@Orderno")
Conn.ConnectionString = provider & dataFile
Conn.Open()
Comm.Parameters.AddWithValue("@Orderno", TextBox1.Text)
Comm1.Parameters.AddWithValue("@Orderno", TextBox1.Text)
Comm.ExecuteNonQuery()
Comm1.ExecuteNonQuery()
MsgBox("Records Successfully Deleted")
Conn.Close()
答案 0 :(得分:0)
您的连接字符串错误。它应该是:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Persist Security Info=False;
您还没有设置OleDbCommand对象的Connection属性。
尝试
Dim connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = F:\Database.accdb; Persist Security Info=False;"
Dim Conn As OleDbConnection = New OleDbConnection (connectionString)
Dim Comm As OleDbCommand
Dim Comm1 As OleDbCommand
Comm = New OleDbCommand("DELETE * from Orders WHERE [OrderNumber]=@Orderno", Conn)
Comm1 = New OleDbCommand("DELETE * from Order_Details WHERE [OrderNumber]=@Orderno", Conn)
Comm.Parameters.AddWithValue("@Orderno", TextBox1.Text)
Comm1.Parameters.AddWithValue("@Orderno", TextBox1.Text)
Conn.Open()
Comm.ExecuteNonQuery()
Comm1.ExecuteNonQuery()
MsgBox("Records Successfully Deleted")
Conn.Close()