初识ADO.NET
来源:互联网 发布:windows pyqt5 编辑:程序博客网 时间:2024/06/06 03:45
熟悉ADO编程的程序员都知道,ADO中最重要的是引入了三个智能指针:Connection_Ptr、Command_Ptr和Recordset_Ptr。而在.NET的框架下,ADO.NET与ADO存在着很大的不同,ADO.NET为程序员提供了更高层的接口和组件,数据处理采用面向连接的双层模型。同时,为方便程序员在断开方式下处理数据,ADO.NET提供了数据处理中介工具DataAdapter组件和能够独立于数据源之外的缓冲数据集DataSet组件。下面我们就借助ADO.NET处理数据的框架来认识一下DataAdapter和DataSet的工作流程:
DataAdapter:数据适配器,提供了两个很重要的方法:Fill和Update,该组件可以看做是一个工具,如果把DataSet看做一个数据仓库的话,那么DataAdapter就可以看作是一辆运输车,是用来Fill和Update的工具,而DataSet的数据集则是Fill的对象,数据库是Update的对象。
DataSet:独立于数据源外,用来临时存放数据的数据仓库或者称为数据集,因此可以很好的支持断开方式的数据处理。DataSet的基本结构如下:
DataSet是一系列数据表的集合,相当于数据源的一个快照,需要注意的是,DataSet中的数据是置于内存的。
下面举一个简单的例子以了解DataAdapter和DataSet的用法:
DataSet ds = new DataSet();
OleDbCommand m_AccessComm;
OleDbDataAdapter m_AccessAdapter;
OleDbConnection m_ADOConn = new OleDbConnection();
m_ADOConn.ConnectionString = @"Provider = Microsoft.Jet.OLEDB.4.0;Data Source = .//spinfo.mdb";
m_ADOConn.Open();//数据库连接并打开
m_AccessComm = new OleDbCommand("Select * From spinfo_rec", m_ADOConn);
m_AccessAdapter = new OleDbDataAdapter(m_AccessComm);
m_AccessAdapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];//用DataGridView控件绑定数据源并显示
以上是用DataGridView控件来显示Access数据库文件spinfo.mdb中的表spinfo_rec的信息,当我们在DataGridView中修改数据后,可以刷新DataSet,通过DataAdapter的Update方法来刷新源数据库。
OleDbCommandBuilder dcb = new OleDbCommandBuilder(m_AccessAdapter);
m_AccessAdapter.SelectCommand = new OleDbCommand("SELECT * FROM spinfo_rec",m_ADOConn);
m_AccessAdapter.Update(ds);//刷新DataSet的同时也将源数据库中的表刷新
//清除DataSet内容,重新将更新后的的数据库内容Fill到DataSet
ds.Tables[0].Clear();
m_AccessAdapter.Fill(ds,"spinfo_rec");
由于之前已经将DataGridView绑定到ds,所以ds的内容就更新到了DataGridView中。
在上面的例子中,使用到了OleDbCommandBuilder, 这个组件比较有意思,他会自动生成数据库的INSERT/UPDATE/DELETE命令,而SELECT命令则需要事先指定。而且它会自动根据数据的变化来自动判断选择使用哪种SQL语句。有兴趣的朋友可以直接在WinForm中拖一个DataAdapter的控件,看看dataAdapter的SelectCommand/InsertCommand/UpdateCommand/DeleteCommand是如何写的。
- ADO.Net初识
- 初识ADO.NET
- 初识ADO.NET
- 初识ADO.NET
- 初识ADO.NET
- 初识ADO.net
- ADO.NET连载(一)初识ADO.NET
- ADO.NET入门教程(一) 初识ADO.NET
- 你必须知道的ADO.NET(一) 初识ADO.NET
- 你必须知道的ADO.NET(一) 初识ADO.NET
- 初识ADO.NET-常用对象使用代码模块
- 初识ADO.net-访问数据的两种方式
- ADO 与ADO.NET
- ADO 与ADO.NET
- ADO和ADO.NET
- ADO、ADO.net、DAO
- ADO ADO.NET区别
- ADO与ADO.NET
- 使用SQL求从1加到5的值
- RHCE考点归纳
- 线程中更新窗口不能直接调用UpdateData函数
- 内存学习
- 如何使用VC6编译sqlite3(版本:sqlite-source-3_6_22)
- 初识ADO.NET
- 泡妞之必备QQ聊天用语
- 从一数据库用PL/SQL导入数据到另一数据库乱码
- 一步一步学Edit Control控件的用法
- NMAKE的命令行语法
- java开发之eclipse插件配置
- SQL中按中文字段排序
- 与或非异或
- java 项目打包