VB.NET学习笔记:ADO.NET操作ACCESS数据库——数据集DataSet数据管理(DataAdapter查询更新数据库)

本文详细介绍了使用VB.NET的ADO.NET操作ACCESS数据库,通过OleDbDataAdapter对象填充数据集并更新数据库。内容包括:使用OleDbDataAdapter的Fill和Update方法,OleDbCommandBuilder自动生成SQL语句,数据集的表架构填充,自定义数据集结构以及ColumnMappings的使用。此外,还强调了在使用DataAdapter时不需要手动打开连接,并指出了ACCESS数据库不支持多条SQL语句执行的特点。
摘要由CSDN通过智能技术生成

DataAdapter与数据源提供程序相关,操作ACCESS数据库数据提供程序为OleDb.net,命名空间为System.Data.OleDb,相应的DataAdapter对象在System.Data.OleDb空间里对应的是OleDbDataAdapter对象。
而DataTable对象和DataSet对象同属于System.Data命名空间,可见其与数据源无关。DataTable对象可作为DataSet对象中的表,也可以单独作为数据集。下图为ADO.NET 体系结构。
ADO.NET 体系结构
使用OleDbDataAdapter对象的Fill方法可从数据源检索数据并填充 DataSet 中的表,实例化OleDbDataAdapter对象时必须设置其SelectCommand属性。 使用OleDbDataAdapter对象的Update方法还可将对 DataSet 所做的更改解析回数据源,实例化OleDbDataAdapter对象时必须设置InsertCommand、 UpdateCommand或 DeleteCommand属性。

一、OleDbDataAdapter对象填充数据集并将更改保存到数据库

以下示例代码演示使用OleDbDataAdapter对象填充数据集,修改数据集中的表数据,然后将修改过的数据更新到数据库。

Imports System.Data.OleDb
Public Class Form2

    Private Const strconn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\test.accdb"
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        '连接数据库
        Dim conn As New OleDbConnection(strconn)
        '打开数据库
        conn.Open()
        '实例化OleDbDataAdapter
        Dim adapter As New OleDbDataAdapter("SELECT stutbl.* FROM stutbl", conn)
        '实例化DataSet
        Dim dst As New DataSet("mydst")
        '添加表
        dst.Tables.Add("mytbl")
        '填充数据到DataSet
        adapter.Fill(dst, "mytbl")
        '窗口显示数据
        DataGridView1.DataSource = dst.Tables("mytbl")

        '操作数据表DataTable
        With dst.Tables("mytbl")
            '插入行
            Dim newrow As DataRow = .NewRow()
            newrow("stuname") = "李四"
            newrow("sex") = "男"
            newrow(3) = "二年级"
            .Rows.Add(newrow)

            '更新行
            .Rows(2)("stuname") = "王二"

            '删除行
            .Rows(.Rows.Count - 2).Delete()
        End With

        '添加insert命令参数
        Dim insertcmd As New OleDbCommand("Insert INTO stutbl(sex,stuname,grade) VALUES (?,?,?)", conn)
        insertcmd.Parameters.Add("@sex", OleDbType.VarChar, 1, "sex")
        insertcmd.Parameters.Add("@stuname", OleDbType.VarChar, 10, "stuname")
        insertcmd.Parameters.Add("@grade", OleDbType.VarChar, 10, "grade")
        adapter.InsertCommand = insertcmd

        '添加update命令参数
        Dim updatecmd As New OleDbCommand("Update stutbl set sex=?,stuname=?,grade=? Where ID=?", conn)
        updatecmd.Parameters.Add("@sex", OleDb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值