vb.net - 从 DataTable 更新 OleDB 表的最简单方法
问题描述
从以前修改过的导入表vb.NET
中更新完整表的最简单方法是什么 ( )?OleDB
这就是我所拥有的。
首先,我从Access
数据库中导入表:
Dim PRDB As String = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=<location>;
Jet OLEDB:Database Password=<password>"
Dim CNDB As New OleDb.OleDbConnection(PRDB)
Dim CMDB As New OleDb.OleDbCommand
Dim ADDB As New OleDb.OleDbDataAdapter(CMDB)
Dim TBDB As New DataTable
Try : CNDB.Open()
Catch EX As Exception : MsgBox(EX.ToString) : End Try
Try : CMDB.CommandText = "SELECT * FROM [TABLE 01]" : ADDB.Fill(TBDB)
Catch EX As Exception : MsgBox(EX.ToString) : End Try
到目前为止,一切都很好。我设法TABLE 01
成功导入到TBDB
.
现在,假设我更改了一个单元格DataTable
:
TBDB.Rows(2).Item(3) = "CHANGED"
有没有办法直接更新OleBD
表格而不描述更改的单元格地址?就像是
ADDB.Update(TBDB) (?)
我已经尝试了最后一段代码,但它没有用(我认为它只有在参数DataRow
不是 a时才有效DataTable
)。
我研究了这个问题,但是对于这个(明显的)简单任务,我找到的所有答案看起来都有些复杂。所以我想知道是否有更直接的方法来做到这一点 - 我也读过一些关于的东西Binders
,但我不太明白这个方法。
谢谢
解决方案
感谢@Fadi,我设法使用以下方法获得了我正在寻找的确切方法OleDbCommandBuilder
:
Dim CMNDBUID As OleDb.OleDbCommandBuilder
CMNDBUID = New OleDb.OleDbCommandBuilder(ADDB)
CMNDBUID.GetUpdateCommand()
然后我可以轻松更新Access
表格:
Try : ADDB.Update(TBDB)
Catch EX As Exception : MsgBox(EX.ToString) : End Try
推荐阅读
- python - 需要帮助的后续元音检查器
- c# - C# 自定义数据网格视图中的排序
- python - 如何使用python从标签中提取跨度文本
- node.js - 无法解密使用 Swift CryptoKit - AES-256-GCM 加密的 NodeJS 中的数据
- python - 在python中使用许多函数参数进行线程化
- python - %s 占位符代表什么?
- sql - 如何选择每个分支总共 3 个 obs?
- excel - 从字符串中提取所有序列
- java - 无法在 Intellij 中使用 maven 安装的本地 jar 中的类
- java - 使用 JPARepository 获取实体副本