在更新ms访问数据库时重复

时间:2010-01-05 10:37:45

标签: vb.net ms-access

这是错误: http://screencast.com/t/ZDVhNmJiOTgt

请帮忙,这是我的代码: 我该怎么做才能解决这个错误

       Try
        If MessageBox.Show("Save and update database?", _
        "Confirmation", MessageBoxButtons.YesNo) = _
        Windows.Forms.DialogResult.Yes Then
            Dim idXs As Integer
            Dim dSet As New DataSet
            Dim conn As New OleDb.OleDbConnection
            Dim strSQL As String

            conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\ACCESS DATABASE\search.mdb"
            conn.Open()

            strSQL = "Select * From GH"
            Dim da As OleDbDataAdapter
            da = New OleDb.OleDbDataAdapter(strSQL, conn)
            da.Fill(dSet, "GH") 'fill dataset

            'code for editing records
            Dim cb As New OleDbCommandBuilder(da)
            idXs = Form1.idX 'retrieve index from Form1
            dSet.Tables("GH").Rows(idXs).Item(0) = TextBox1.Text
            dSet.Tables("GH").Rows(idXs).Item(1) = TextBox2.Text
            dSet.Tables("GH").Rows(idXs).Item(2) = TextBox3.Text
            dSet.Tables("GH").Rows(idXs).Item(3) = TextBox4.Text
            da.Update(dSet, "GH") 'update database

            conn.Close() 'close connection
            reloadMyMain() 'show new changes in form1 if any
        Else
            DSET.RejectChanges() 'cancel delete
        End If
    Catch ex As Exception
        MsgBox(ex.ToString) 'show exception message
    End Try

3 个答案:

答案 0 :(得分:2)

您需要检查数据库中的表 - 其中一列是索引的,只能包含唯一值,或者有其他限制。

您在该列中输入了无法容纳的数据。

尝试直接在桌面上手动“更新”数据,你会看到有什么问题......

答案 1 :(得分:0)

您似乎没有文件F:\ACCESS DATABASE\search.mdb

检查访问数据库文件的路径。

答案 2 :(得分:0)

您指向的错误消息为:

  

'F:\ ACCESS DATABASE \ search.mdb'不是有效路径。

显然您在conn.ConnectString = ...行中错误输入了数据库的路径。