【问题标题】:VB Database not updating after saving and closing application?保存和关闭应用程序后VB数据库不更新?
【发布时间】:2016-04-03 03:17:46
【问题描述】:

当您输入新信息并保存它时,我正在尝试让我的程序更新数据库,我的应用程序中的所有其他内容都在运行,但是当我重新加载应用程序时它没有保存我的更改。似乎是什么错误?

导入 System.IO 导入 System.Data.OleDb 公开课形式1 私有 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

结束类

【问题讨论】:

  • 您发布的任何代码都不会修改数据。如果你没有改变任何东西,你为什么期望事情会改变?无需保存任何内容,也无需修改以反映应用程序何时重新启动。即使您调用adapter.Update(dataSet, "Cities"),您也没有做任何会改变数据的事情。

标签: vb.net visual-studio


【解决方案1】:

您必须对您尝试保存的记录执行更新 sql 语句。现在看来,您所拥有的只是选择语句

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 2012-06-30
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多