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
Ş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. –