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是隻進的,你讀了第一條後就不能再去讀取第一條了。 缺點就是
:須要你去維護創建起來的這個數據庫鏈接,因此若是用戶訪問量大時,有可能致使鏈接池異常。
相關文章
相關標籤/搜索