Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 更新ms access数据库时出现重复_Vb.net_Ms Access - Fatal编程技术网

Vb.net 更新ms access数据库时出现重复

Vb.net 更新ms access数据库时出现重复,vb.net,ms-access,Vb.net,Ms Access,以下是错误: 请帮忙,这是我的代码: 如何解决此错误 Try If MessageBox.Show("Save and update database?", _ "Confirmation", MessageBoxButtons.YesNo) = _ Windows.Forms.DialogResult.Yes Then Dim idXs As Integer Dim dSet As

以下是错误:

请帮忙,这是我的代码: 如何解决此错误

       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

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

您在该列中输入了无法保存的数据


尝试直接在表上手动“更新”数据,您将看到问题所在…

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


检查access数据库文件的路径。

您指向的错误消息如下:

“F:\ACCESS DATABASE\search.mdb”不是有效路径


显然,您在
conn.ConnectString=…
行中错误地键入了db的路径。

请将您遇到问题的代码以及任何错误消息一起发布到您的问题中。您可能包含了错误的错误消息。如果出现重复的记录错误,您可能希望检查表中的唯一索引。是否有必要在文件名周围加上引号并加上空格,例如,“Provider=Microsoft.Jet.OLEDB.4.0;Data Source='F:\ACCESS DATABASE\search.mdb'?我不知道,因为我不在Jet中使用ODBC,也不在文件名或文件夹名中使用空格。不知道,因为它与我用于添加条目的代码相同,而且有效。唯一的区别是命令生成器部分和.update