向Access数据库添加记录时,“提交”按钮不起作用

时间:2014-05-13 23:00:27

标签: vb.net ms-access

所以我一直在为自己做这个个人项目,我试图创建一个程序,用户(在这种情况下我)可以通过我可以的表单添加,删除,更新数据库填写必要的信息。

为了总体而言,主窗体有一个数据网格视图,如果我单击加载,数据库将显示记录。我得到了所有这一切。然而,我遇到麻烦的地方是在Form1中添加了一个记录表格,我写下了这些信息,在填写之后我按下"提交"按钮,以便它可以在MS Access数据库上写入它。这是我在提交按钮内部的代码的一般视图。仅供参考,Profiles是mdb文件的名称,Contacts是包含recods的表的名称。

Imports System.Data.OleDb
Private Sub btnCommit_Click(sender As Object, e As EventArgs) Handles btnCommit.Click
If inc <> 0 Then 
        Dim cb As New OleDb.OleDbCommandBuilder(da) 
        Dim dsnewrow As DataRow 

        dsnewrow = ds.Tables("Profiles").NewRow() 

        dsnewrow.Item("First_Name") = FirstNameText.Text 
        dsnewrow.Item("Last_Name") = LastNameText.Text

        ds.Tables("Profiles").Rows.Add(dsnewrow) 
        da.Update(ds, "Profiles")

        Main.DataGridView1.Refresh() 


        MsgBox("New Record added")

    End If
End Sub

我不知道的是,是否有必要将以下代码添加到Form1_load:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Try
        dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
        dbSource = "Data Source= path to the mdb file"


        con.ConnectionString = dbProvider & dbSource

        con.Open()
        Sql = "SELECT * FROM Contacts"
        da = New OleDb.OleDbDataAdapter(sql, con)
        da.Fill(ds, "Profiles")

        con.Close()
        Maxrows = ds.Tables("Profiles").Rows.Count
        inc = -1
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

声明以下内容,仅供参考:

Dim con As New OleDb.OleDbConnection
Dim da As OleDb.OleDbDataAdapter
Dim ds As New DataSet 
Dim dbProvider, dbSource As String
Dim sql As String
Dim Maxrows As Integer

此行上INSERT INTO语句中的语法错误:da.Update(ds, "Profiles")

任何帮助都会非常感激,不幸的是已经好几天了:/

如果您需要任何其他信息以澄清,请与我们联系。

1 个答案:

答案 0 :(得分:0)

试试这个。在<{p>之后的btnCommit_Click方法中

Dim cb As New OleDb.OleDbCommandBuilder(da)

添加以下内容:

cb.QuotePrefix = "["
cb.QuoteSuffix = "]"

这有帮助吗?