论文部分内容阅读
摘要:ADO.NET是微软针对ADO的缺陷而重新设计的一种全新的数据库访问技术。阐述了ADO.NET的结构与数据模型:数据提供程序和数据集。探讨了利用ADO.NET技术访问数据库访问的方式,同时给出了采用C#语言所实现的ADO.NET数据库访问技术在数据库中编程中的具体实现方案。
关键词:C#语言;ADO.NET;数据库访问
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)18-2pppp-0c
Research on Database Accessing Technology Based on ADO.NET
LIU Ying
(South-central University For Nationalities College of Business,Wuhan 430000,China)
Abstract:This thesis introduces the data accessing technology based on ADO.NET,illuminates the structure ande the data model of ADO.NET:data provider and data set.It described the way of the database access in using ADO.NET technology.Then the solution with C# language has been presented to use the ADO.NET database accessing technology in database programming.
Key words:c# language;ADO.NET;Database Accessing
1 引言
ActiveX Data Objects.NET(简称ADO.NET)是Microsoft公司设计的一种新的数据访问技术。在.NET中,数据存取的任务都是通过ADO.NET完成。同以往的数据库访问技术相比,ADO.NET有很多数据处理的优势。ADO.NET是为关系数据访问和非关系数据访问设计的数据连接模型,它可以实现对数据源的非连接处理;另外ADO.NET新增了一些对象,如DataReader类可以产生一个只读的记录集,用来实现对快速读取数据。
2 ADO.NET的数据模型
ADO.NET有两个核心组件:数据提供程序和数据集。
数据提供程序(data provider)连接数据源,支持数据访问和处理。数据集(data set)支持数据以关联的方式,在断开连接的情况下独立地缓存数据,根据需要更新数据源。
2.1 数据提供程序
ADO.NET中的数据提供程序主要有两种:SQL SERVER数据提供程序和OLE DB数据提供程序
每个数据提供程序都是System.Data命名空间中的一个接口实现方式,专门用于特定的数据源。如SQL SERVER数据提供方式属于System.Data.SqlClient,支持SQL SERVER 7或更新版本。而OLE DB数据提供程序属于System.Data.OleDb命名空间,支持对SQL SERVER旧版本和其他数据库(Access、DB2、MySQL和Oracle)的访问。
以SQL SERVER数据提供程序为例,其中包含了3个主要的组件。
2.1.1 数据提供程序的连接类
SQL SERVER数据提供程序的连接类是SqlConnection,实现了System.Data.IDbConnection接口,用于实现与数据源的连接。
要与一个SQL SERVER数据库建立连接,首先引入命名空间:
using System.Data;
using System.Data.SqlClient;
然后创建连接字符串。连接字符串主要用于指定连接信息的参数,通常包括目标SQL SERVER实例名称,指定身份验证模式,数据库名等。
string constring=@”server=(local)\sqlexpress;
integrated security=sspi;
database=northwind;”
最后创建连接,也就是SqlConnnection对象,同时将连接字符串作为参数传递给它
SqlConnection con=new SqlConnection(constring);
打开连接:
con.Open();
2.1.2Command对象
连接了数据库以后,可以通过Command对象执行sql命令或是存储过程来完成对数据库的一些操作。
首先创建命令字符串:
string sql=@”select count(*)from employees”;
然后创建Command对象:
SqlCommand cmd=new SqlCommand(sql,con);
其中sql作为参数将传递给cmd.CommandText属性,这个属性用来保存要执行的sql语句;con作为参数传递给cmd.Connection属性,其作用是将命令与数据库的连接关联起来。
最后执行命令:执行命令的方法有四种。方法的区别取决于sql代码的结果。执行命令的方法如下表所示:
表1 执行命令的方法
以刚建立的cmd命令为例:
cmd.ExecuteScalar();
2.1.3 数据读取器
数据读取器是实现了System.Data.IDataReader接口的对象。数据读取器用来读取查询的结果集。它是快速的、未缓存的、只向前移动的、只读的、已连接数据源的、逐行检索数据的数据流。数据读取器适用于只想读取和显示数据的时候。
首先实例化数据读取器:
SqlDataReader rd=cmd.ExecuteReader();
这里需要注意的是,由于SqlDataReader是抽象类,不能显示的实例化,必须执行SqlCommand的ExecuteReader()方法来获得SqlDataReader的实例。
接着,调用SqlDataReader的Read()方法来遍历返回结果集的每一行。在Read()方法中,如果存在下一行就返回true,并向前移动游标;如果没有下一行,就返回false。由于Read把游标移动到下一个记录,所以每次都必须手工调用这个方法。一般使用while循环来完成操作:
while(rd.Read())
然后访问数据:
在调用了Read()方法后,下一行就以集合的形式返回,存储在SqlDataReader对象中。如果要访问某一列的数据,可以使用许多方法。如果使用序数索引器方法(就像提供整数数组的索引一样),就给数据读取器提供列号以检索值:
Console.WriteLine(“{0}{1}”,rd[0],rd[1]);
也可以使用列名索引器,把列名传递给数据读取器:
Console.WriteLine(“{0}{1}”,rd[“EmployeeId”],rd[“LastName”])
关键词:C#语言;ADO.NET;数据库访问
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)18-2pppp-0c
Research on Database Accessing Technology Based on ADO.NET
LIU Ying
(South-central University For Nationalities College of Business,Wuhan 430000,China)
Abstract:This thesis introduces the data accessing technology based on ADO.NET,illuminates the structure ande the data model of ADO.NET:data provider and data set.It described the way of the database access in using ADO.NET technology.Then the solution with C# language has been presented to use the ADO.NET database accessing technology in database programming.
Key words:c# language;ADO.NET;Database Accessing
1 引言
ActiveX Data Objects.NET(简称ADO.NET)是Microsoft公司设计的一种新的数据访问技术。在.NET中,数据存取的任务都是通过ADO.NET完成。同以往的数据库访问技术相比,ADO.NET有很多数据处理的优势。ADO.NET是为关系数据访问和非关系数据访问设计的数据连接模型,它可以实现对数据源的非连接处理;另外ADO.NET新增了一些对象,如DataReader类可以产生一个只读的记录集,用来实现对快速读取数据。
2 ADO.NET的数据模型
ADO.NET有两个核心组件:数据提供程序和数据集。
数据提供程序(data provider)连接数据源,支持数据访问和处理。数据集(data set)支持数据以关联的方式,在断开连接的情况下独立地缓存数据,根据需要更新数据源。
2.1 数据提供程序
ADO.NET中的数据提供程序主要有两种:SQL SERVER数据提供程序和OLE DB数据提供程序
每个数据提供程序都是System.Data命名空间中的一个接口实现方式,专门用于特定的数据源。如SQL SERVER数据提供方式属于System.Data.SqlClient,支持SQL SERVER 7或更新版本。而OLE DB数据提供程序属于System.Data.OleDb命名空间,支持对SQL SERVER旧版本和其他数据库(Access、DB2、MySQL和Oracle)的访问。
以SQL SERVER数据提供程序为例,其中包含了3个主要的组件。
2.1.1 数据提供程序的连接类
SQL SERVER数据提供程序的连接类是SqlConnection,实现了System.Data.IDbConnection接口,用于实现与数据源的连接。
要与一个SQL SERVER数据库建立连接,首先引入命名空间:
using System.Data;
using System.Data.SqlClient;
然后创建连接字符串。连接字符串主要用于指定连接信息的参数,通常包括目标SQL SERVER实例名称,指定身份验证模式,数据库名等。
string constring=@”server=(local)\sqlexpress;
integrated security=sspi;
database=northwind;”
最后创建连接,也就是SqlConnnection对象,同时将连接字符串作为参数传递给它
SqlConnection con=new SqlConnection(constring);
打开连接:
con.Open();
2.1.2Command对象
连接了数据库以后,可以通过Command对象执行sql命令或是存储过程来完成对数据库的一些操作。
首先创建命令字符串:
string sql=@”select count(*)from employees”;
然后创建Command对象:
SqlCommand cmd=new SqlCommand(sql,con);
其中sql作为参数将传递给cmd.CommandText属性,这个属性用来保存要执行的sql语句;con作为参数传递给cmd.Connection属性,其作用是将命令与数据库的连接关联起来。
最后执行命令:执行命令的方法有四种。方法的区别取决于sql代码的结果。执行命令的方法如下表所示:
表1 执行命令的方法
以刚建立的cmd命令为例:
cmd.ExecuteScalar();
2.1.3 数据读取器
数据读取器是实现了System.Data.IDataReader接口的对象。数据读取器用来读取查询的结果集。它是快速的、未缓存的、只向前移动的、只读的、已连接数据源的、逐行检索数据的数据流。数据读取器适用于只想读取和显示数据的时候。
首先实例化数据读取器:
SqlDataReader rd=cmd.ExecuteReader();
这里需要注意的是,由于SqlDataReader是抽象类,不能显示的实例化,必须执行SqlCommand的ExecuteReader()方法来获得SqlDataReader的实例。
接着,调用SqlDataReader的Read()方法来遍历返回结果集的每一行。在Read()方法中,如果存在下一行就返回true,并向前移动游标;如果没有下一行,就返回false。由于Read把游标移动到下一个记录,所以每次都必须手工调用这个方法。一般使用while循环来完成操作:
while(rd.Read())
然后访问数据:
在调用了Read()方法后,下一行就以集合的形式返回,存储在SqlDataReader对象中。如果要访问某一列的数据,可以使用许多方法。如果使用序数索引器方法(就像提供整数数组的索引一样),就给数据读取器提供列号以检索值:
Console.WriteLine(“{0}{1}”,rd[0],rd[1]);
也可以使用列名索引器,把列名传递给数据读取器:
Console.WriteLine(“{0}{1}”,rd[“EmployeeId”],rd[“LastName”])