对数据库操作,就是处理各种数据事务,或者在你的网页上把数据按照一定的组织形式显示出来。
.NET中ADO.NET就提供了这样的功能。不过ADO.NET也够复杂的,所以很多人用了半天,还是一头雾水。
1、ADO的结构
ADO中使一系列的类,按功能,大致可分为连接用、执行命令用、填充数据用三类。另外还有些支持事务处理的类。
诸如SqlConnection,OleDBConnection,ODBCConnection等连接器,分别表示连接SQL Server, OleDB兼容驱动数据连接器,和ODBC兼容数据连接器。他们的作用就是用来和数据源连接。SQL Server也提供了OleDB和ODBC兼容的数据库驱动,所以使用OleDBConnection和ODBCConnection也可以连接到SQL Server,但ODBCConnection要在ODBC数据连接池中作设置。况且后两者性能都不是最好的,所以Microsoft又开发了SqlConnection,专门针对Sql的连接。
诸如SqlCommand,OleDBCommand,ODBCCommand等类,是执行SQL命令使用。分别对应上述不同的连接器。Command可以执行的命令根据数据库能够支持而决定,一般来说,我们最常使用它的SELECT来检索数据。
诸如SqlDataReader, OledbDataReader等,这些阅读器是通过执行Command的ExecuteReader方法创建出来的。阅读器算是ADO中最轻量级的数据检索类了,但是它只是ADO的一个小角落,Reader提供的功能少之又少,只能读取数据不能写数据,每次读一行,使用DataReader.Read命令读,使用DataReader.Get(int Index)获取所读到单前行中索引为Index的列的值,况且,DataReader还必须和数据库保持连接,单这一点来说,DataReader付出的连接成本是相当高的,所以DataReader不是任何时候都适用,但是它很简单,所以很多教材中都以它来说明数据库连接的例子,大多数初学者也宁愿使用DataReader。
诸如SqlDataAdapter, OledbDataAdapter等,我们都叫这一类对象叫作DataAdapter(数据适配器)。这个理解理解起来比较困难一些,但是既然叫做适配器,不妨做个比喻:例如计算机中的网卡(专业名称叫网络适配器),他的作用就是将网络上传来的属于这台计算机的数据收下来,并处理后提交给计算机,计算机将要发送的数据给网卡,网卡负责将其打包封装,然后放在网络上,不难看出,网卡充当了数据传递沟通处理转换的桥梁。DataAdapter也是一样的,DataAdapter本质上也是靠SQL命令来实现数据桥梁,桥梁的一端是数据库Database,另外一端是DataSet,关于DataSet,稍后会描述。要想从数据库取得数据填充DataSet,需要使用Select命令,这个命令是DataAdapter.SelectCommand属性保存的Command命令对象执行的,要想从DataSet将数据更新到数据库,需要联合使用DELETE,UPDATE和INSERT命令,这些命令也是分别由DataAdapter.DeleteCommand,DataAdapter.UpdateCommand,DataAdapter.InsertCommand属性所指定的Command对象执行的。DataAdapter提供Fill方法填充数据,用Update方法更新数据。
DataSet,这是ADO.NET的核心,也是最复杂的类了,DataSet可以理解为“内存中的数据库”,所以DataSet至少是一个数据表的容器,他还可以定义约束,而且还可以读入XSD建立一个“类型化”的DataSet,这些超出了本文讨论的范围了,留给以后的文章去。
如果创建无类型的DataSet,这是比较简单的,使用DataSet ds = new DataSet();即可。无类型的D
作者在 2007-04-17 23:10:00 发布以下内容