在VB.NET中使用OLEDB通过DataGridView更新Access数据库

好奇的勒科洛

我已将Access数据库链接到我的程序。它会按预期填充DataGridView,以便程序的一部分可以工作。但是,我试图让DataGridView对其进行任何更改来更新Access数据库文件,但是经过无数次尝试修复我的代码或寻找替代解决方案之后,我很沮丧。

谁能看到任何错误或我错过的东西,导致代码无法按预期运行?先感谢您。

Imports System.Data.OleDb

Public Class frmDatabase

Dim con As New OleDbConnection
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New OleDbDataAdapter


Private Sub frmDatabase_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Joe\Documents\Visual Studio 2012\Projects\school database viewer\school database viewer\dbSchoolDatabase.mdb"
    con.Open()
    ds.Tables.Add(dt)
    da = New OleDbDataAdapter("Select * from tableStudentDetails", con)
    da.Fill(dt)
    dgvStudentDetails.DataSource = dt.DefaultView
    con.Close()

End Sub

Private Sub cmdUpdate_Click(sender As Object, e As EventArgs) Handles cmdUpdate.Click

    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Joe\Documents\Visual Studio 2012\Projects\school database viewer\school database viewer\dbSchoolDatabase.mdb"
    con.Open()
    ds.Tables.Add(dt)
    da = New OleDbDataAdapter("Select * from tableStudentDetails", con)
    da.Update(dt)
    con.Close()

End Sub
End Class
史蒂夫

只需在代码中添加一个OleDbCommandBuilder

Private Sub frmDatabase_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Joe\Documents\Visual Studio 2012\Projects\school database viewer\school database viewer\dbSchoolDatabase.mdb"
    con.Open()
    ds.Tables.Add(dt)
    da = New OleDbDataAdapter("Select * from tableStudentDetails", con)
    Dim cb = new OleDbCommandBuilder(da)
    cb.QuotePrefix = "[" 
    cb.QuoteSuffix = "]"
    da.Fill(dt)
    dgvStudentDetails.DataSource = dt.DefaultView
    con.Close()

End Sub

Private Sub cmdUpdate_Click(sender As Object, e As EventArgs) Handles cmdUpdate.Click

    da.Update(dt)

End Sub

此类是必需的,因为OleDbDataAdapter本身无法创建更新网格中新行/已删除行或更改行所需的DELETE / UPDATE / INSERT命令。还请记住,如果SELECT命令没有返回表的主键,则OleDbCommandBuilder无法构建所需的命令。在这种情况下,您需要手动构建命令。

还要注意,正如@gordthompson在下面的注释中所指出的那样,对OleDbCommandBuilder采取的预防措施是添加CommandBuilder将在您的字段名称和表名称周围使用的特殊字符,以避免与保留关键字发生冲突(如果存在)在你的桌子上

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在vb.net中使用Switch语句访问Access数据库

来自分类Dev

在VB.Net中使用SQL连接到Access数据库

来自分类Dev

使用VB.NET更新SQL数据库

来自分类Dev

在vb.net中使用登台表和bulkcopy更新SQL数据库表BULK的陷阱

来自分类Dev

vb.net Postgresql 数据库,使用DataTable 并在Datagridview 中显示位图

来自分类Dev

数据库未从 VB.NET 数据集更新

来自分类Dev

通过 VB/Visual Studio 插入 Access 数据库 (2017)

来自分类Dev

从VB 2015更新MS Access数据库

来自分类Dev

通过datagridview vb更新多表数据集

来自分类Dev

VB.Net更新数据库无法正常工作

来自分类Dev

VB.NET和Access数据库趋势

来自分类Dev

VB.NET Access数据库255列限制

来自分类Dev

VB.NET修改与Access数据库的匹配

来自分类Dev

如何在Vb net中使用For子句从数据库mysql获取数据

来自分类Dev

使用vb.net从Sql数据库中插入,更新和删除数据?

来自分类Dev

VB.NET使用数据集更新数据库表

来自分类Dev

Access VB连接oracle数据库

来自分类Dev

在vb.net中使用linq从数据库显示列表

来自分类Dev

无法通过VB.NET查看或插入MS Access oledb

来自分类Dev

使用vb.net中的文本框更新sql 2005数据库

来自分类Dev

更新 *。使用VB.NET的SDF数据库文件

来自分类Dev

使用vb.net将MS Access行插入数据库

来自分类Dev

使用VB.Net将CSV文件导入到Access数据库

来自分类Dev

使用VB.NET从Access数据库中的表中获取列名

来自分类Dev

缓慢的数据库查询:使用VB.net连接到Access

来自分类Dev

使用 MS ACCESS 数据库在 VB.net 上执行阅读器错误

来自分类Dev

在VB.NET中使用OleDb.NET调用Access 2010存储的选择查询的异常

来自分类Dev

Vb.net数据库问题

来自分类Dev

Vb.net数据库问题

Related 相关文章

热门标签

归档