sql中数据库链接与断开式链接有什么区别?

链接式指的是对数据的操做在 conn.Open() 与 conn.Close()之间
断开式链接指的是 conn.Open()打开链接以后,先将数据放入adapter中,而后关闭链接(conn.Close()),接着利用adapter对数据进行操做。
链接式:
sqlConn.Open();
SqlDataReader dr=sqlComm.ExcuteReader();
while(dr.Read())
{
for (int i=0; i<dr.FieldCount; i++)
{
Console.Write(dr.GetValue(i).ToString()+" ");
}
Console.WriteLine();
}
dr.Close();
sqlConn.Close();

断开式:
sqlConn.Open();
DataSet ds=new DataSet();
adapter.Fill(ds);
sqlConn.Close();
//处理数据在打开和关闭以后
for (int i=0; i<ds.Tables[0].Rows.Count; i++)
{
for (int j=0; j<ds.Tables[0].Columns.Count; j++
{
Console.Write(ds.Tables[0].Rows[i][j]+" ");
}
Console.WriteLine();


}
它们各有什么优势和缺点 
断开式的主要优势就是:
一次链接取得数据以后,便可断开,在用户很是多的状况下,不会占用太多的链接池资源。

还有一点,就是一次性的从数据库中取得了数据以后,这些数据是存在内存中的,而不会再去操做数据库,因此你对
这些数据作任何的操做,都只是修改内存,不会改变数据库中的内容。缺点就是:刚才提到了,这种方式是把数据一
次性的读到内存中的,因此在数据量大的时候会很是消耗内存。
  非断开式的优势:
由于非断开式使用DataReader,每次只在内存中加载一条数据,因此占用的内存是很小的。因为

DataReader的特殊性和高性能,因此DataReader是只进的,你读了第一条后就不能再去读取第一条了。 缺点就是
:须要你去维护创建起来的这个数据库链接,因此若是用户访问量大时,有可能致使链接池异常。
相关文章
相关标签/搜索