我嘗試使用命令DataAdapter.InsertCommand將新記錄添加到數據庫。但我不知道爲什麼它不會插入新記錄到數據庫無法使用DataAdapter.insertCommand添加新行到數據庫vb.net
這裏是我的代碼:
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim cnn As New OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand
Dim da As New OleDb.OleDbDataAdapter
Dim ds As New DataSet
Dim dt As New DataTable
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\1_Project\Project_of_VB_Net\AccessDatabase\StudentDatabase.accdb"
cmd.Connection = cnn
cmd.CommandText = "INSERT INTO StudentData(StudentID) VALUES (@studentid)"
cmd.Parameters.AddWithValue("@studentid", "123")
Try
cnn.Open()
da.InsertCommand = cmd
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
cnn.Close()
End Try
End Sub
請幫我找出什麼地方錯了?
您需要執行查詢。 'AddWithValue'是次優的,特別是如果'StudentId'是一個數字('「123」'不是)。但是你爲什麼要插入Ids?這是數據庫的工作。 – Plutonix
@Plutonix我認爲da.insertcommand = cmd意思是「執行查詢」? StudentID字段是我在數據庫中聲明的文本。我插入的ID,因爲我想當我點擊按鈕添加,它會創建一個新的行有一個ID第一(ID是一個文本,並從文本框中放入) – Bruce
我從來沒有使用像你一樣的數據適配器,看看它會如何工作。直接使用不帶適配器的命令(cmd.ExecuteNonQuery())或使用insert命令配置dataadaptor,將參數映射到studentid字段,然後將記錄插入到數據表中並運行da.Update(dt) –