一.//連接方式訪問數據庫的主要步驟(利用DataReader對象實現數據庫連接模式)
1.創建連接對象(連接字符串)
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["XXX"].ConnectionString);
2.創建命令對象(設置Command對象的幾個屬性值)
SqlCommand scmd = new SqlCommand();
scmd.CommandText = sql;
scmd.CommandType = CommandType.StoredPRocedure;
scmd.Connection = scon;
3.打開連接
con.Open();
4.發送命令
scmd.ExecuteNonQuery(); //增刪改的時候
//scmd.ExecuteReader(); //查詢的時候
//scmd.ExecuteScalar(); //返回第一行第一列的時候,使用
5.處理數據
//視情況而定。。??捎锌蔁o
6.關閉連接
scon.Close();
//非鏈接方式訪問數據庫(利用DataAdapter對象實現數據庫斷開模式)
1/創建連接對象
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["XXX"].ConnectionString);
2.創建數據適配器對象(數據適配器對象有四個選擇命令:SelectCommand,UpdateCommand,DeleteCommand,InsertCommand,另外還有一個Fill()填充方法。里面可以填充DataTable或者DataSet對象)
SqlDataAdapter sda = new SqlDataAdapter("GetUserInfoByName", scon);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
3.打開連接
scon.Open();
//DataTable dt=new DataTable();
4.發送命令
sda.Fill(dt);
5.關閉連接
scon.Close();
1、連接環境
優點:
環境易于實施安全控制
同步問題易于控制
數據實時性優于其他環境
缺點
必須保持持續的網絡連接
擴展性差
2、非連接環境
中央數據存儲的一部分數據可以被獨立地復制與更改,在需要時可以與數據源中的數據合并
優點
可以在任何需要的時間進行操作,在必要時才連接到數據源
不獨占連接
非連接環境的應用提高了應用的擴展性與性能
缺點
數據不是實時的
必須解決數據的并發性與同步問題
對于C/S結構,連接模式還是一個不錯的模式,在B/S結構,或者分布式的環境中,還是使用斷開模式比較好。一方面是擴展性比較好,另外一個方面是效率會比較高,相對于采用連接模式來說。這取決于Connection是否還是需要象在傳統的C/S結構中使用單件模式創建一個共享的Connection,還是象在每一個頁面都創建自己的Connection.
SqlDataReader從字面上看數據讀取,在讀取數據的過程中一直與數據庫保持連接,適合數據量小的情況,執行效率還是可以的。
SqlDataAdapter(數據適配器)可以說建立一個"本地數據庫"--DataSet,先將數據取出來放到dataset中,然后就可以關閉數據庫了,通過sqldataadapter還可以更新刪除數據庫中的東西,可以通過封裝的Update等方法同步到數據庫,這樣服務器的資源消耗就少,可以同時支持更多并發的客戶機。當然,這需要DataSet對象的支持和配合才能完成,這是ADO.NET的卓越之處。
兩種模式都可以搭配DataSet和DataTable使用。
1、連接
數據量小,系統規模不大、客戶機和服務器在同一網絡內的環境,只讀的情況下優先選DataReader
2、非連接
適合網絡數據量大、系統節點多、網絡結構復雜,尤其是通過Internet/Intranet進行連接的網絡。需要綁定數據遠的情況下,需要修改數據同時更新到數據庫(非連接)
注:沒有那種模式是絕對的,根據自己的需要情況,各取所需,這樣節省資源,提高效率,達到事半功倍的效果。
新聞熱點
疑難解答