我尝试使用命令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) –