您的位置:首页 > 其它

两种数据访问方式:从ADO 到ADO.NET

2016-03-13 17:17 316 查看
     电脑最大的好处就是可以帮助人处理大量数据,由此离不开对数据库的访问,先看看最近在做ASP.NET例子的时候经常用到的ADO.NET的数据库访问方式。

     一、ADO.NET的访问方式

     ADO.NET的名称起源于ADO(ActiveX
Data Objects),用于在以往的Microsoft技术中访问数据。

     ADO.NET是.NET
Framwork中不可缺少的一部分,它是一组类。通过一组类, .NET应用程序就可以访问数据库了。应用程序可以通过ADO.NET技术与这些数据源进行连接,对数据进行增删改查等操作。

     用ADO.NET连接数据库首先要懂得它的两大组件:
DataSet和 .NET Framework数据提供程序。

下图是ADO.NET两大组件:

                               


DataSet是ADO.NET的断开式结构的核心组件,为了实现独立于任何数据源的数据访问,可将其视为从数据库检索出的数据在内存中的缓存。它包括一个或者多个DataTable对象的集合,这些对象由数据行、数据列及主键、外键、约束和有关DataTable对象中数据的关系信息组成。

.NET Framework数据提供程序,为了实现数据操作和对数据的访问。它提供的核心元素是Connection、Command、DataReader和DataAdapter这四个对象。其中,Connection对象提供与数据库的连接;Command对象能够访问用于返回数据,修改数据,运行存储过程,以及发送或检索参数信息的数据库命令;DataReader对象从数据源中提供高性能的数据流;DataAdapter对象提供连接DataSet对象和数据源的桥梁,使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中的数据更改与数据源保持一致。

.NET Framework数据提供程序的四个核心对象:

                                              


Connection的作用是建立应用程序和数据库的连接,Connection有两个方法:Open()方法打开数据库,Close()关闭数据的连接;一个属性ConnectionString设置连接数据库字符串。它的作用可以用图形表示:

                      


 

       例:在category表里把数据读出来,然后显示到界面上。
       //数据连接类
public class DBCon
{
public static SqlConnection createCon()
{
return new SqlConnection("server=.;database=newssystem;uid=sa;password=123456");
}
}

//数据绑定
private void BindToDataGrid()
{
SqlConnection con = DBCon.createCon(); //调用连接数据库的方法
SqlDataAdapter sda = new SqlDataAdapter(); //创建DataAdapter数据适配器实例,读取数据
sda.SelectCommand = new SqlCommand("select * from category", con); //执行sql命令
DataSet ds = new DataSet(); //创建DataSet实例
sda.Fill(ds, "emp"); //把数据填充到临时表里
this.DataGrid1.DataSource = ds.Tables["emp"];
this.DataGrid1.DataBind(); //绑定数据
}


        执行结果:

                         


这就可以把数据表category里的数据读取出来呈现到页面上。

    二、ADO的访问方式

     ADO记得以前在学习红皮书(VB)的时候接触到过,现在再来简单回顾一下吧。

     ADO是一种程序对象,用于表示用户数据库中的数据结构和所包含的数据。在Microsoft
VisualBasic编辑器中,可以使用ADO对象以及ADO的附加组件(称为Microsoft
ADO Extensions for DLLand Security(ADOX))来创建或修改表和查询、检验数据库、或者访问外部数据源。还可在代码中使用ADO来操作数据库中的数据。

从一个 ASP页面内部访问数据库的通常的方法是:

     1、创建一个到数据库的
ADO 连接

     2、打开数据库连接

     3、创建
ADO 记录集

    4、从记录集提取您需要的数据

    5、关闭记录集

    6、关闭连接
    如果我们要访问一个SQL
server数据库,你的Connection代码看上去应象下面所示:

‘设置连接属性cn.Provider = "MSDASQL"

cn.ConnectionString = "driver={SQL Server};" & "server=prod1;uid=bg;pwd=;database=main"

cn.Open

"Provider"属性指向SQL Server的OLE DB Provider


     三、对比

                  


      事物总是向前发展的,从上图可以看出ADO华丽丽地变身成了ADO.NET,由于ADO自身架构的不足,尤其是在开发网络应用程序时,RecordSet无法脱机,严重影响了网络应用的开发。于是,ADO.NET应运而生,它引入了脱机型数据模型的概念。很多人将ADO.NET看作是ADO的下一个版本,但其实它是一个全新的架构、产品概念。当然,不仅仅只是一个原因而让ADO.NET超越了ADO,它俩就像是割麦子的方式不一样而已,在科技还不是很发达的年代,人们割麦子只能是用镰刀,而现在很多都是在用机器收割。万事讲究合适的就是最好的,用镰刀还是用机器?大家亲身体验吧。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对比 ADO ADO.NET