2017-04-16 5 views
0

実際のアクセスデータベースファイルを更新する方法はありますか?これはこれまでの私のコードですが、私はすべてが正しいと思いますが、ボタンを押して情報を実際のデータベースファイルに送信すると、そこには表示されません。誰かがこれで私を助けることができますか?私が話しているアクセスファイルは、ビジュアル基本プロジェクトの外にあるものですが、まだ接続されています。初期化文字列のVB.Netを使用してアクセスデータベースにデータを挿入する

コード

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://stackoverflow.com/questions/12634516を生成

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

のようなものです/ how-can-i-insert-data-into-sql-server-using-vbnet – June7

+1

* songTitle *、* songArtist *、* songAlbum *、* yearReleased *の値はどこにありますか? 'Dim'で初期化しますが、値を代入しません。値をメソッドに渡すべきではありませんか?たぶん 'sender'オブジェクトまたは' e' EventArgs?あまりにもVB.Netに精通して申し訳ありません。 – Parfait

+0

@パルフェット私にそれを見せることができますか? –

答えて

0

フォーマットは

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 

を示し

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\Music Session Database\Music Database.accdb 
関連する問題