2016-04-03 3 views
0

新しい情報を入力して保存すると、自分のプログラムがデータベースを更新するようにしようとしていますが、他のものはすべて自分のアプリケーションで動作していますが、アプリケーションをリロードすると変更が保存されません。エラーと思われるものは何ですか?文字列としてアプリケーションを保存して閉じた後にVBデータベースが更新されませんか?

輸入System.IO 輸入のSystem.Data.OleDb パブリック・クラスのForm1 プライベートDBPATH

Private conn As OleDbConnection 
Private adapter As OleDbDataAdapter 
Private dtMain As DataTable 
Private dataSet As DataSet 
Private cmdBuilder As OleDbCommandBuilder 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    DBPath = Application.StartupPath + "\MEGACITIES.mdb" 
    conn = New OleDbConnection(Convert.ToString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=") & DBPath) 
    conn.Open() 
    If Not File.Exists(DBPath) Then 
     MessageBox.Show("Please copy the mdb to the path: " + Application.StartupPath) 

    Else 
     ' connect to DB   
     adapter = New OleDbDataAdapter("SELECT * FROM [Cities]", conn) 
     Dim builder = New OleDbCommandBuilder(adapter) 
     dataSet = New DataSet() 
     adapter.Fill(dataSet, "Cities") 
     DataGridView1.DataSource = dataSet.Tables("Cities") 
    End If 


End Sub 

Private Sub btnPopulationByOrder_Click(sender As Object, e As EventArgs) Handles btnPopulationByOrder.Click 

    adapter = New OleDbDataAdapter("SELECT * FROM [Cities] order by pop2015", conn) 
    Dim builder = New OleDbCommandBuilder(adapter) 
    'dtMain = New DataTable() 
    'adapter.Fill(dtMain) 
    'DataGridView1.DataSource = dtMain 
    dataSet = New DataSet() 
    adapter.Fill(dataSet, "Cities") 
    DataGridView1.DataSource = dataSet.Tables("Cities") 
End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    adapter = New OleDbDataAdapter("SELECT Cities.city,Cities.country,Cities.pop1995,Countries.currency FROM [Cities] inner join Countries on Cities.country = Countries.country", conn) 
    Dim builder = New OleDbCommandBuilder(adapter) 
    dataSet = New DataSet() 
    adapter.Fill(dataSet, "Cities") 
    DataGridView1.DataSource = dataSet.Tables("Cities") 
End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    If TextBox1.Text.Trim() = "" Then 
     MessageBox.Show("Please enter the country name in text box.") 
    Else 

     adapter = New OleDbDataAdapter("SELECT city from [Cities] where country = '" + TextBox1.Text + "'", conn) 
     Dim builder = New OleDbCommandBuilder(adapter) 
     dataSet = New DataSet() 
     adapter.Fill(dataSet, "Cities") 
     DataGridView1.DataSource = dataSet.Tables("Cities") 
    End If 
End Sub 

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 

    cmdBuilder = New OleDbCommandBuilder(adapter) 
    adapter.Update(dataSet, "Cities") 
    DataGridView1.DataSource = dataSet.Tables("Cities") 
    MessageBox.Show("1 changed Records were stored", "Project4Spring2016") 

End Sub 

エンドクラス

+2

あなたが投稿したコードのいずれも、データの修正に努力していません。あなたが何かを変えていないなら、なぜ物事が変わると思っていますか?保存するものは何もなく、アプリの再起動時に反映するための変更はありません。 'adapter.Update(dataSet、" Cities ")'を呼んでいても、データを変更することは何もしていません。 –

答えて

0

あなたは、レコードあなたの試行で更新SQL文を実行する必要があり保存する。今すぐあなたが持っているものはすべて選択文です。

関連する問題