初识ADO.NET

1.ADO.NET简介

ODBC(Open Data Base Connectivity,开放式数据库连接)技术,建立了一种统一的应用程序访问数据库的接口,通过它,开发人员无需了解数据库内部的结构就可以实现对数据库的访问。随着计算机技术的迅猛发展,ODBC在面对新的数据驱动程序的设计和构造方法时,遇到了困难,OLEDB(Object Linking 按掉Embedding Data Base,对象连接和嵌入数据库)技术便应运而生了。随着网络技术,尤其是Internet技术的发展,大量分布式系统得到广泛的应用。为适应新的开发需求,一种的新的技术诞生了,即所谓的ADO。ADO对OLEDB做了进一步的封装,从整体上看,ADO模型以数据库为中心,具有更多的层次模型和更丰富的编程接口。而ADO.NET是ADO的最新发展产物,更具有通用性。ADO.NET技术革命性的成功实现了在“断开的”的概念下实现客户端对服务器上数据库的访问,而且做到了这一点,并不需要开发人员做大量的工作。

2.ADO.NET结构

设计ADO.NET组件的目的是从数据操作中分解出数据访问。实现此功能的是它的.NET数据提供程序和DataSet组件。结构图如下:

数据提供结构:

数据提供程序是应用程序和数据源之间的桥梁。数据提供程序都包括:

其中常用的是 SQL ServerOLE DB这个两种。

SQL Server .NET可以直接访问SQL Server而不用添加OLEDB或ODBC,更加精简,具有更好的性能。位于System.Data.SqlClient命名空间中。

OLEDB  .NET 通过OLE DB 服务组件和数据源的OLE DB提供程序与OLE DB数据源通信。位于System.Data.OleDb 命名空间中。两者对比图:

DataSet数据集

它是ADO.NET断开式结构的核心组件,实现了独立于任何数据源的数据访问。DataSet从任何数据源中检索后得到的数据并且保存在缓存中,它可以包含表、所有表的约束、索引和关系。因此,可以把它看做是内存中的一个小型关系数据库。

3.NET数据提供程序的核心元素

先看一张导图所总结的各个点:

a. Connection对象

(1)连接字符串

参数说明
Provider用于提供连接驱动程序的名称,仅用于OleDbConnection对象。
Data Source指明所需访问的数据源,如是访问SQL Server则指服务器名称。
Initial Catalog指明所需访问数据库的名称。
Password或PWD指明访问对象的所需的密码。
User ID或UID指明访问对象所需的用户名。
Connection TimeOut指明访问对象所持续的时间,以秒计算,如果在持续的时间内仍连接不到所访问的对象,则返回失败信息,默认值为15.
Integrated Security或TrustedConnetion集成连接,可选true或false,如果为真则表示集成Windows验证,此时不需要提供用户名和密码即可登录。

(2)连接方法

这里比较一下Close方法和Dispose方法。

Close方法表示关闭一个已打开的连接对象,将连接释放到服务器的连接池中。而Dispose方法是移除连接,从服务器中的连接池中删除连接,以保存服务器的资源。

 b. Command对象

(1)属性

名称说明
CommandType三种选择,Text表示SQL语句;StoreProcedure表示存储过程;TableDirect表示直接的表。
CommandText如果CommandType指明为Text,则此属性指出SQL语句的内容。此为默认值。如果CommandType指明为StoreProcedure,则此属性指出存储过程的名称。如果CommandType指明为DirectTable,则此属性为表的名称。
Connection指定与Command对象相联系的Connection对象。

(2)方法

名称说明
ExecuteReader执行返回具有DataReader类型的行集数据的方法。
ExecuteScaler执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
ExecuteNonQuery对连接执行 Transact-SQL语句并返回受影响的行数。 

 c. DataReader对象

提供一种从数据库读取行的只进流的方式。若要创建 DataReader,必须调用 Command 对象的 ExecuteReader 方法。

方法

说明

Read

使 DataReader 前进到下一条记录。

GetString

获取指定列的字符串形式的值。

GetInt 16(32,64)

获取指定列的16位整数形式的值。

 d. DataAdapter对象

(1)属性

名称说明
DeleteCommand用来在数据源中删除行的数据命令
InsertCommand用来在数据源中插入行的数据命令
SelectCommand用来在数据源中检索行的数据命令
UpdateCommand用来更新数据源中的行的数据命令

(2)方法

数据适配器支持的两个重要方法:一个是Fill,把数据从数据源加载到数据集中;另一个是Update,向另一个方向传送数据----把数据从数据集中加载到数据源中。

 

4.以SQL为例讲解ADO.NET数据库访问的一般过程。

   (1)创建SqlConnection对象,建立数据库的连接。

   (2)通过SqlCommand创建数据适配器SqlDataAdapter,建立数据库与数据集之间的桥。

   (3)建立数据集DataSet。通过数据库与DataSet之间的桥SqlDataAdapter,编写代码用于填充数据集和更新数据集。

   (4)在VB.NET程序窗体中添加控件并设置其属性,使其和DataSet对象中的表和属性列相关联。

 

5.C#的实例:简单得应用了一些ADO.NET的知识。
private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";     //查询字符串
    using (SqlConnection connection = new SqlConnection(
               connectionString))                          //使用using语句保证在范围结尾连接自动关闭。
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);                      //创建Command对象
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();    //采用Command对象的ExecuteReader方法创建DataReader对象。
        try
        {
            while (reader.Read())                          //调用了DataReader的read方法。
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
     }
}

6.总结

  以上这些都是我整理最近学习到ADO.NET的一些基础知识。理论是为了实践。在以后的学习过程中我会不断反复学习使用,以便更好的理解。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值