VB.net数据库编程(08):ADO.net数据访问接口

本文详细介绍了ADO.net数据访问接口,包括六个主要接口:ODBC、DAO、RDO、OLE DB、ADO和ADO.net。重点讲解了ADO.net的核心组件:.Net数据提供程序(如SqlClient、OleDb、OracleClient、Odbc)和DataSet。着重阐述了ADO.net的五个核心对象——Connection、Command、DataReader、DataAdapter和DataSet的作用和用法,以及如何使用它们进行数据库操作,如数据连接、SQL执行、数据读取和事务处理。
摘要由CSDN通过智能技术生成
编程语言与数据库的连接是通过一个接口,达到两者交流,以便两者谈情说爱。

一、接口种类:6种:

        1、ODBC,面向C/C++。

        2、DAO,   面向VB,操作ACCEss

        3、RDO,上面的加强型

        4、OLE DB

        5、ADO,      对OLE DB的加强型

         6、ADO.net,    ADO的加强型。


二、ADO.net概述:

        Ado.net基于XML和离线计算模型。

        ADO以Recorderset存储,类似单表,若要多表就要多表连接。必须在线

        ADO.net可以在线或离线,DataSet直接可以是多表。

        ADO使用Com技术,ADO.net基于XML格式,数据类型更丰富。


         体系结构如下:

          

          ADO.net的两个核心组件:.Net数据提供程序(左)、DataSet(右)。

          .net数据提供程序用来与数据库的连接。包括Connection,Command,DataReader,DataAdapter四个。

           DataSet用来与XML数据连接。设计的目的是独立于任何数据源的数据访问,可有多种不同数据,也可用于XML数据。

           

           DataSet

           它内部用XML描述数据,与平台无关。其内常用对象是DataTable和DataRow等。DataSet通过DataAdapter获得数据,

           DataAdapter就是DataSet与数据库之间的桥梁,也就是前面的搬运工。它把数据库中的结果集搬运到本地缓存中,这样

           就可与数据离线,直接处理DataSet,处理完后,再连接,再搬运回数据库。

        

            DataSet有三个特点:

             1、独立性:独立于各数据源。即与数据库不发生关系,专注于处理。

              2、离线连接:  一般是离线,只是返回数据库时,才保持连接。

              3、XML描述:   DataSet对象是用XML格式表示的关系型数据视图


              数据提供程序

             它提供四个对象,保持与不同数据库连接。

             1、SQLServer.net数据提供程序,空间:System.Data.SqlClient, 操作SQl2000或以上版本。

              2、OleDb.net数据提供程序,空间:System.Data.OleDb,主要访问Access,FoxPro等

              3、OracleDB.net数据提供程序,空间:System.Data.OracleClient,支持Oracle8.1.7以上版本。

              4、ODBC.net数据提供程序,空间:System.Data.Odbc



三、ADO.net的五个核心对象

       这个说五个是:

       Connection对象负责连接数据库

       Command对象负责生成执行SQl语句

       DataReader对象负责读取数据库的数据

        DataAdapter对象负责在Command对象执行完SQL语句后生成并填充DataSet和DataTable。

         DataSet对象负责存取和更新数据。

        1、Connection对象

             表示一个数据源的单个连接。


           

         例一:连接Access的例子:



        例二:连接Sqlserver的例子:





            2、Command对象

             它用来执行SQL语句,执行的结果由DataReader和DataAdapter填充到DataSet中,这样就完成 数据库数据操作的工作 。



            注1:CommandType有三个:

                    Text,说明是一个SQL语句,这是默认值,不设置时就是它。

                     TableDirect,一个要操作的数据表的名

                     StoredProcedure,一个存储过程。

             注2:构造函数有四个,用第三个较多。



           2.1、Command的构造函数,

            就是上面的四个方法,这个是重点。



            2.2、ExecuteReader方法

            通过DataReader类型的对象,应用程序可获得执行SQL命令后的结果集。

            这个方法有两种定义:

            一是ExecuteReader() :不带参数,直接返回一个DataReader结果集;

           二是ExecuteReader(CommandBehavior   behavior):根据参数Behavior取值类型,决定DataReader类型。

                   如果behavior是CommandBehavior.SingleRow,则说明返回的ExecuteReader只是结果集中的第一条数据;

                   如果behavior是CommandBehavior.SingleResult,则说明只返回在查询结果中多个表里的第一个。

                   如果behavior是CommandBehavior.SequentialAccess,则说明对于返回的ExecuteReader对象只能顺序

                               读取它包含的列。一旦读过某列,就不能返回再次读取了,以方便性为代价换取读取数据时的高效率。


             无论何结果,ExecuteReader方法返回一个DataReader对象,该对象是一个仅向向的只读数据流,所以主要用来执行

                       基本SQL查询,要求SQL语句返回记录集。


             2.2例一:ExecuteReader。

             用executeReader返回一个DataReader,然后用它来填充(加载到)另一个对象DataTable中,最后DataTable直接绑定到控件上。

  1. Imports System.Data.SqlClient  
  2. Public Class Form1  
  3.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
  4.         Dim cn As New SqlConnection("Data Source=.;Initial Catalog=Sales;Integrated Security=False;User ID=sa;Password=123456;")  
  5.         cn.Open()  
  6.   
  7.         Dim cmd As New SqlCommand("select * from grade", cn)  
  8.         Dim dr As SqlDataReader '不能new.应用程序不直接创建 IDataReader 接口的实例,而是创建继承 IDataReader 的类的实例  
  9.         dr = cmd.ExecuteReader()  
  10.         Dim dt As New DataTable  
  11.         dt.Load(dr)  
  12.         DataGridView1.DataSource = dt  
  13.   
  14.         cn.Close()  
  15.     End Sub  
  16. End Class  



            2.2例二:利用BindingSource来绑定

           前面用DataTable绑定数据,下面用BindingSource来绑定。界面一样,代码变化几句:

  1. Imports System.Data.SqlClient  
  2. Public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值