关于如何在vb.net中操作访问数据库的不同方法?

时间:2009-12-28 11:14:59

标签: vb.net ms-access

我目前正在使用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")

2 个答案:

答案 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。