ADO.NET中数据库连接的两种模式:连接模式和断开模式

http://blog.csdn.net/yinjingjing198808/article/details/7857810

ADO.NET(ActiveX Data Objects)大家都很熟悉,顾名思义用来访问数据库,.NET环境下首选的数据库访问接口。

   访问数据库ADO.NET提供了两种模式:连接模式和断开模式。在说他们的区别之前用几张图来概括应用程序的运行机制和过程:

                          图1:整个应用程序的运行机制

     

 

                        图2:数据库连接机制

   

                                                                             图3:ADO.NET 对象

                                

                 

 

       通过上面三张图我们看到ADO.NET对象在应用程序和数据库间扮演者“桥梁”角色。DataSet和DataTable可以看做是数据容器。访问数据库的速度直接影响到应用程序的执行效率,ADO.NET 提供了两种数据库连接模式:

        1. 连接模式:利用DataReader对象实现数据库连接模式:

       代码如下:

[csharp]   view plain copy
  1. public partial class DataRead : System.Web.UI.Page  
  2.     {  
  3.         protected void Page_Load(object sender, EventArgs e)  
  4.         {  
  5.             string str = "server=localhost;uid=sa;pwd=123456;database=DataTest";  
  6.             SqlConnection conn = new SqlConnection(str);  
  7.             SqlCommand cmd = new SqlCommand("select * from student", conn);  
  8.             conn.Open();  
  9.             SqlDataReader rdr = cmd.ExecuteReader();  
  10.             DataTable table = new Datable();  
  11.             table.Load(rdr);  
  12.             rdr.Close();  
  13.             conn.Close();  
  14.         }  
  15.     }  
[csharp]   view plain copy
  1. <span style="font-size:18px;">  </span>  

       2. 断开模式:利用DataAdapter对象实现数据库断开模式:

       代码如下:

      

[csharp]   view plain copy
  1. public partial class DataRead : System.Web.UI.Page  
  2.     {  
  3.         protected void Page_Load(object sender, EventArgs e)  
  4.         {  
  5.             string str = "server=localhost;uid=sa;pwd=123456;database=DataTest";  
  6.             SqlConnection conn = new SqlConnection(str);  
  7.             string sql = "select * from student";  
  8.             SqlDataAdapter adp = new SqlDataAdapter(sql, conn);//Adepter对象  
  9.             DataSet ds = new DataSet();//DataSet对象  
  10.             adp.Fill(ds, "stu");//填充DataSet 并为当前表命名  
  11.             DataTableReader rdr = ds.CreateDataReader();  
  12.             while (rdr.Read())//读取表中数据  
  13.             {  
  14.                 Response .Write("第n条数据");  
  15.             }  
  16.         }  
  17.     }  


总结:

  • 数据库连接两种模式的区别:

        SqlDataReader从字面上看数据读取,在读取数据的过程中一直与数据库保持连接,适合数据量小的情况,执行效率还是可以的。

        SqlDataAdapter(数据适配器)可以说建立一个"本地数据库"--DataSet,先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,可以通过封装的Update等方法同步到数据库。

        两种模式都可以搭配DataSet和DataTable使用。

  • 两种模式的适用范围:

        数据量小,只读的情况下优先选择DataReader

        数据量大,需要绑定数据远的情况下,需要修改数据同时更新到数据库,选择DataAdapter

没有那种模式是绝对的,根据自己的需要情况,各取所需,这样节省资源,提高效率,达到事半功倍的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值