使用VB.Net将数据插入到Access数据库

问题描述:

有没有人有关于如何更新实际访问数据库文件的想法?这是我的代码到目前为止,我认为一切都是正确的,但是当点击按钮将信息发送到实际的数据库文件时,它不会显示在那里。有人可以帮我弄这个吗?我谈论的访问文件是Visual Basic项目本身之外的文件,但仍然连接。使用VB.Net将数据插入到Access数据库

代码

Imports System.Data.OleDb 

Public Class Form1 

Dim provider As String 
Dim datafile As String 
Dim connString As String 
Dim con As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source=G:\Music Session Database\Music Database.accdb") 
Dim ds As New DataSet 

Dim dt As New DataTable 

Dim da As New OleDbDataAdapter 

Private Sub btnexit_Click(sender As Object, e As EventArgs) Handles btnexit.Click 
    Me.Close() 
End Sub 



Private Sub btnsubmit_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnsubmit1.Click 

    Me.Music_DatabaseTableAdapter.Insert(Me.songTitle.Text, Me.songArtist.Text, Me.songAlbum.Text, Me.yearReleased.Text) 
    Me.Music_DatabaseTableAdapter.Fill(Me.Music_DatabaseDataSet.Music_Database) 


    con.Open() 
    MsgBox("Record Added") 
    con.Close() 
    songTitle.Text = "" 
    songArtist.Text = "" 
    songAlbum.Text = "" 
    yearReleased.Text = "" 


End Sub 


Private Sub btnsumbit2_Click(sender As Object, e As EventArgs) Handles btnsumbit2.Click 

    Me.Play_SessionTableAdapter.Insert(Me.songTitle.Text, Me.songArtist.Text, Me.songAlbum.Text, Me.yearReleased.Text, Me.datePlayed.Text, Me.timePlayed.Text, Me.genre.Text) 
    Me.Play_SessionTableAdapter.Fill(Me.Music_DatabaseDataSet.Play_Session) 


    con.Open() 
    MsgBox("Record Added") 
    con.Close() 
    songTitle.Text = "" 
    songArtist.Text = "" 
    songAlbum.Text = "" 
    yearReleased.Text = "" 
    datePlayed.Text = "" 
    timePlayed.Text = "" 
    genre.Text = "" 



End Sub 

Private Sub btnsubmit3_Click(sender As Object, e As EventArgs) Handles btnsubmit3.Click 


    Me.Song_Artist_InformationTableAdapter.Insert(Me.songArtist.Text, Me.genre.Text, Me.origin.Text, Me.artistInformation.Text) 
    Me.Song_Artist_InformationTableAdapter.Fill(Me.Music_DatabaseDataSet.Song_Artist_Information) 

    con.Open() 
    MsgBox("Record Added") 
    con.Close() 
    songArtist.Text = "" 
    genre.Text = "" 
    origin.Text = "" 
    artistInformation.Text = "" 


End Sub 

Private Sub btnclear_Click(sender As Object, e As EventArgs) Handles btnclear.Click 
    songTitle.Clear() 
    songArtist.Clear() 
    songAlbum.Clear() 
    yearReleased.Clear() 
    datePlayed.Clear() 
    timePlayed.Clear() 
    genre.Clear() 
    artistInformation.Clear() 
End Sub 


Private Sub FillByToolStripButton_Click(sender As Object, e As EventArgs) 
    Try 

    Catch ex As System.Exception 
     System.Windows.Forms.MessageBox.Show(ex.Message) 
    End Try 

End Sub 

Private Sub Music_DatabaseBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles Music_DatabaseBindingNavigatorSaveItem.Click 
    Me.Validate() 
    Me.Music_DatabaseBindingSource.EndEdit() 
    Me.TableAdapterManager.UpdateAll(Me.Music_DatabaseDataSet) 

End Sub 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'Music_DatabaseDataSet.Song_Artist_Information' table. You can move, or remove it, as needed. 
    Me.Song_Artist_InformationTableAdapter.Fill(Me.Music_DatabaseDataSet.Song_Artist_Information) 
    'TODO: This line of code loads data into the 'Music_DatabaseDataSet.Play_Session' table. You can move, or remove it, as needed. 
    Me.Play_SessionTableAdapter.Fill(Me.Music_DatabaseDataSet.Play_Session) 
    'TODO: This line of code loads data into the 'Music_DatabaseDataSet.Music_Database' table. You can move, or remove it, as needed. 
    Me.Music_DatabaseTableAdapter.Fill(Me.Music_DatabaseDataSet.Music_Database) 







End Sub 




Private Sub btnupdate1_Click(sender As Object, e As EventArgs) Handles btnupdate1.Click 
    Me.Validate() 
    con.Open() 
    ds.Tables.Add(dt) 
    da = New OleDbDataAdapter("Select * from [Music Database]", con) 
    Dim cb = New OleDbCommandBuilder(da) 
    cb.QuotePrefix = "[" 
    cb.QuoteSuffix = "]" 
    da.Fill(dt) 
    Music_DatabaseDataGridView.DataSource = dt.DefaultView 
    da.Update(dt) 
End Sub 

Private Sub btnupdate2_Click(sender As Object, e As EventArgs) Handles btnupdate2.Click 
    Me.Validate() 
    con.Open() 
    ds.Tables.Add(dt) 
    da = New OleDbDataAdapter("Select * from [Play Session]", con) 
    Dim cb = New OleDbCommandBuilder(da) 
    cb.QuotePrefix = "[" 
    cb.QuoteSuffix = "]" 
    da.Fill(dt) 
    Play_SessionDataGridView.DataSource = dt.DefaultView 

    da.Update(dt) 


End Sub 

Private Sub btnupdate3_Click(sender As Object, e As EventArgs) Handles btnupdate3.Click 
    Me.Validate() 
    con.Open() 
    ds.Tables.Add(dt) 
    da = New OleDbDataAdapter("Select * from [Song Artist Information]", con) 
    Dim cb = New OleDbCommandBuilder(da) 
    cb.QuotePrefix = "[" 
    cb.QuoteSuffix = "]" 
    da.Fill(dt) 
    Song_Artist_InformationDataGridView.DataSource = dt.DefaultView 


    da.Update(dt) 
End Sub 

末级

+0

评论http://*.com/questions/12634516/how-can-i-insert-data-into-sql-server-using-vbnet – June7

+1

值* songTitle *,* songArtist *,* songAlbum *,* yearReleased *填充值在哪里?你在'Dim'中初始化,但不要赋值。不应该将形式值传递给方法吗?也许用'sender'对象或'e' EventArgs?抱歉不太熟悉VB.Net。 – Parfait

+0

@Parfait你能告诉我那个吗? –

初始化字符串的格式不符合规范

connString创建是无效的。

provider = "Microsoft.ACE.OLEDB.12.0" 
datafile = "H:\Music Session Database\Music Database.accdb" 

connString = provider & datafile 

Console.WriteLine(connString) 

显示

Microsoft.ACE.OLEDB.12.0H:\Music Session Database\Music Database.accdb 

你想要做的是一样的东西

connString = String.Format("Provider={0};Data Source={1}", provider, datafile) 

产生

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\Music Session Database\Music Database.accdb