所以我一直在为自己做这个个人项目,我试图创建一个程序,用户(我在这种情况下)可以添加,删除,通过可以填写必要信息的表单更新数据库。将记录添加到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")
任何帮助都会很棒不胜感激,一直在它的日子不幸:/
让我知道你是否需要任何额外的信息来澄清。
数据库中是否有比First,Last names更多的列? – Plutonix
是的,有。有地址1,地址2,邮编,电话,电子邮件,笔记 – Reginald