ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在NET编程环境中优先使用的数据访问接口。 既然ADO.NET起源于ADO,那么ado.net必定有它独特的优点,那就比较一下吧:
它提供了对关系数据、XML 和应用程序数据的访问,因此是 .NET Framework 中不可缺少的一部分。下面就介绍下ado.net的类库都有些什么对象吧:
1、DataSet:
相当于一个本地的数据库,它包括多个DataTable对象,而DataTable包含列和行,就像一个普通的数据库中
表,它是在特定的场景下使用--帮助管理内存中的数据并支持对数据的断开操作的。它的结构如图所示:
添加DataTable的语法:
<Dataset name>.Table.Add(<datatable object name>);
2、Connection对象
和数据库交互,必须连接它。连接帮助指明数据库服务器、数据库名字、用户名、密码,和连接数据库所需要的其
它参数。Connection对象会被Command对象使用,这样就能够知道是在哪个数据源上面执行命令。
(1)SQL (结构化查询语言)
sqlcon=new SqlConnection("server=SQLDB;uid=sa;pwd=password;database=pubs");
(2) OLE DB(对象链接嵌入数据库)
adocon=new OleDbConnection("Provider=SQLOLEDB; DataSource=SQLDB;Initial Catalog=pubs;User Id=sa;pwd=password");
3、Command对象
成功与数据建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令;Command对象常用的方
法有ExecuteReader()方法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入数据可用
ExecuteNonQuery()方法来执行插入命令。
(1)SQL
SqlCommand sqlcom=new SqlCommand("select * from student",sqlcon);
(2)OLE DB
OleDbCommand adocom=new OleDbCommand("select * from student",adocon);
4、DataAdapter数据适配器(类似于中介)
(1)数据适配器是ado.net托管提供程序的组成部分;适配器用于在数据源和数据集之间交换数据;数据适配器可以
在任意源和数据集之间移动数据。
(2)DataAdapter的update方法可调用将DatSet中的更改解析回数据源;其中I男色让他Command、
UpdateCommand和DeleteCommand属性也是Command对象,而且可以用其更改;
(3)DataAdapter的SelectCommand属性是一个Command对象,从数据源中检索数据;Fill方法用于使
DataAdapter的SelectCommand的结果来填充DataSet。
5、DataView数据视图
能够创建DataTable中所存储的数据的不同视图,DataView作用:
(1)可以公开表中具有不同排序顺序的数据
(2)可以按行状态或基于筛选器表达式来筛选数据
6、DataReader
(1)可以使用其从数据库检索只读、只进的数据流;
(2)Command.ExecuteReader从数据源中检索行
(3)使用DataReader对象的Read方法可从查询结果中获取行;
(4)返回行的每一列值得方法:通过向DataReader传递列的名称或序号引用;调用GetDateTime、GetDouble
、GetGuid、GetInt32等方法。
除了上面的几个常用的几个对象,还有其他的。除了这些之外,还可以用来处理XML数据:
架构大概是:
//架构
<rootelement xmlns="x-schema:scheduledSchema.xsl">
//打开xml文件
FileStream myfs=new FileStream(Server.MapPath("xmldatagrid.xml")),
FileMode.Open,FileAccess.Read);
//将xml绑定到DataSet
DataView mySource=new DataView(myds,Table[0]);
DataGrid.DataSource=mySource;
dgMyGrid.DataBind();
不管是在哪一个学习阶段,ado.net的实用频率都很大,了解的还不够深刻,努力学习中。。。