2016-04-03 13 views
0

Programımı yeni bilgileri yazıp kaydettiğimde veritabanını güncelleştirmeye çalışıyorum, ancak uygulamada başka her şey çalışıyor ancak uygulamayı yeniden yüklediğimde değişikliklerimi kaydetmiyor. Hata nasıl görünüyor? As StringVB Veritabanı, uygulama kaydedildikten ve kapatıldıktan sonra güncellenmiyor mu?

İthalat System.IO İthalat System.Data.OleDb Ortak sınıf Form1 Özel 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 

End Class

+2

Şu anda gönderdiğiniz kodların hiçbiri verileri değiştirmek için çaba sarf etmiyor. Eğer hiçbir şeyi değiştirmiyorsan, neden şeylerin değişmesini beklerdin? Kaydedilecek hiçbir şey yok ve uygulama yeniden başlatıldığında yansıtılacak hiçbir değişiklik yok. "Adapter.Update (dataSet," Cities ") işlevini çağırıyor olsanız da, verileri değiştirecek hiçbir şey yapmıyorsunuz. –

cevap

0

Sen kayıtları için deneyin üzerinde bir güncelleme sql deyimi yapmak zorunda kaydetmek. Şu anda göründüğünüz şu anda tüm seçimleriniz

İlgili konular