gpt4 book ai didi

database - VB.NET - .accdb 数据库不保存更改

转载 作者:搜寻专家 更新时间:2023-10-30 23:45:40 25 4
gpt4 key购买 nike

我不明白为什么我的代码无法保存到我的 .accdb 数据库中。

我正在从 .accdb 数据库文件中获取数据并将其显示在 DataGridView 中,然后允许对其进行更改。 (这是一个库存控制系统。)进行更改后,用户将能够发回数据,以便将其保存在 .accdb 文件中。

我到处都在网上查看并尝试了多种不同的方法。这是我目前用来解决问题的方法,但是在运行代码时它不会保存到 .accdb 文件中。 (但是,它不会抛出任何错误。)

Public Class Database
Dim datatable As DataTable
Dim adapter As OleDb.OleDbDataAdapter
Dim dbCon As New OleDb.OleDbConnection
Dim dbProvider As String = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
Dim dbRsrc As String = "Data Source =" & System.IO.Directory.GetCurrentDirectory & "/Resources/List.accdb"
Dim binding As BindingSource
Dim cmdBuilder As OleDb.OleDbCommandBuilder

Private Sub Database_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dbCon.ConnectionString = dbProvider & dbRsrc
dbCon.Open()
adapter = New OleDb.OleDbDataAdapter("Select * FROM List", dbCon)
datatable = New DataTable
adapter.FillSchema(datatable, SchemaType.Source)
adapter.Fill(datatable)
binding = New BindingSource
binding.DataSource = datatable
dbCon.Close()
StockTable.DataSource = binding
End Sub

Private Sub SaveBtn_Click(sender As Object, e As EventArgs) Handles SaveBtn.Click
'insert validation here
Try
dbCon.ConnectionString = dbProvider & dbRsrc
dbCon.Open()
cmdBuilder = New OleDb.OleDbCommandBuilder(adapter)
adapter.AcceptChangesDuringUpdate = True
adapter.Update(datatable)
dbCon.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString() & " Save Unsuccessful.")
End Try
End Sub
End Class

不确定我哪里出错了 - 当我点击“保存”按钮时,它应该连接到数据库,构建一个 SQL 查询来更新它,然后更新我的数据表 + .accdb 数据库,对吧?为了测试它,我尝试编辑多列并保存它,但是当打开文件时它仍然显示与以前相同的值。

有什么建议/指点吗?我是 VB.NET 的新手,大约 3 个月前学习它,才刚刚开始完全融入它。

最佳答案

非常感谢帮助我找到这个答案的用户“jmcilhinney”。没有意识到我的代码正在运行,我感到非常愚蠢。

我用过

Debug.WriteLine("Update value: " & adapter.Update(datatable))
Debug.WriteLine("Connection str: " & dbProvider & dbRsrc)

发现我的更新命令有效,事实上我的数据库文件的输出在/bin/文件夹中。我没有意识到它使用了/bin/文件夹,并且正在查找包含 .VB 文件等的根文件夹。

关于database - VB.NET - .accdb 数据库不保存更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com