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

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u010927640/article/details/50878848

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

     一、ADO.NET的访问方式

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

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

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

下图是ADO.NET两大组件:

                               

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

.NET Framework数据提供程序,为了实现数据操作和对数据的访问。它提供的核心元素是ConnectionCommandDataReaderDataAdapter这四个对象。其中,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,它俩就像是割麦子的方式不一样而已,在科技还不是很发达的年代,人们割麦子只能是用镰刀,而现在很多都是在用机器收割。万事讲究合适的就是最好的,用镰刀还是用机器?大家亲身体验吧。







猜你喜欢

转载自blog.csdn.net/u010927640/article/details/50878848