我目前正在使用system.data.oledb,但我似乎无法进行更新,搜索和更新删除工作正常。 有没有其他方法可以比我的方法更容易操作vb.net中的ms访问数据库? 这是我的搜索代码:
Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\ACCESS DATABASE\search.mdb")
Dim cmd As OleDbCommand = New OleDbCommand("Select * from GH where IDNUMBER= '" & TextBox12.Text & "' ", cn)
cn.Open()
Dim rdr As OleDbDataReader
rdr = cmd.ExecuteReader
If rdr.HasRows Then
rdr.Read()
NoAcc = rdr("IDNUMBER")
If (TextBox12.Text = NoAcc) Then TextBox13.Text = rdr("NAME")
If (TextBox12.Text = NoAcc) Then TextBox14.Text = rdr("DEPARTMENT")
If (TextBox12.Text = NoAcc) Then TextBox15.Text = rdr("COURSE")
然后,您必须在按更新前进行必要的更改: 这是更新代码,它有缺陷(它确实更新了数据,但它将复制以前的数据,更新的数据将具有不同的ID号):
Dim cb As New OleDb.OleDbCommandBuilder(da)
ds.Tables("GH").Rows(INC).Item("NAME") = TextBox13.Text
ds.Tables("GH").Rows(INC).Item("DEPARTMENT") = TextBox14.Text
ds.Tables("GH").Rows(INC).Item("COURSE") = TextBox15.Text
da.Update(ds, "GH")
MsgBox("Data updated")
答案 0 :(得分:2)
你可以使用这个进行更新
If nameoftable.Rows.Count <> 0 Then
nameoftable.Rows(recordposition)("course_code") = textbox1.Text
nameoftable.Rows(recordposition)("course_description") = textbox2.Text
nameofyouradapter.Update(nameoftable)
End If
答案 1 :(得分:0)
您可以通过vb.net中的com interop调用DAO代码。 DAO接口被设计为直接与JET数据库引擎一起使用,因此在大多数情况下提供比使用ado.net或ADO更好的性能,但它确实在某种程度上将您绑定到JET。