国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

ADO.NET連接方式和非鏈接方式訪問(wèn)數(shù)據(jù)庫(kù)

2019-11-14 15:59:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一.//連接方式訪問(wèn)數(shù)據(jù)庫(kù)的主要步驟(利用DataReader對(duì)象實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接模式)

1.創(chuàng)建連接對(duì)象(連接字符串)

   SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["XXX"].ConnectionString);

2.創(chuàng)建命令對(duì)象(設(shè)置Command對(duì)象的幾個(gè)屬性值)

   SqlCommand scmd = new SqlCommand();
   scmd.CommandText = sql;
   scmd.CommandType = CommandType.StoredPRocedure;
   scmd.Connection = scon;

3.打開(kāi)連接

  con.Open();

4.發(fā)送命令

scmd.ExecuteNonQuery(); //增刪改的時(shí)候

//scmd.ExecuteReader();  //查詢的時(shí)候

//scmd.ExecuteScalar(); //返回第一行第一列的時(shí)候,使用

5.處理數(shù)據(jù)

//視情況而定。。。可有可無(wú)

6.關(guān)閉連接

 scon.Close();

 

//非鏈接方式訪問(wèn)數(shù)據(jù)庫(kù)(利用DataAdapter對(duì)象實(shí)現(xiàn)數(shù)據(jù)庫(kù)斷開(kāi)模式)

1/創(chuàng)建連接對(duì)象

   SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["XXX"].ConnectionString);

2.創(chuàng)建數(shù)據(jù)適配器對(duì)象(數(shù)據(jù)適配器對(duì)象有四個(gè)選擇命令:SelectCommand,UpdateCommand,DeleteCommand,InsertCommand,另外還有一個(gè)Fill()填充方法。里面可以填充DataTable或者DataSet對(duì)象)

SqlDataAdapter sda = new SqlDataAdapter("GetUserInfoByName", scon);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;

3.打開(kāi)連接

scon.Open();

//DataTable dt=new DataTable();

4.發(fā)送命令

sda.Fill(dt);

5.關(guān)閉連接

scon.Close();

 

二、兩種連接方式優(yōu)缺點(diǎn)

 

1、連接環(huán)境

 

優(yōu)點(diǎn):

 

環(huán)境易于實(shí)施安全控制

 

同步問(wèn)題易于控制

 

數(shù)據(jù)實(shí)時(shí)性優(yōu)于其他環(huán)境

 

缺點(diǎn)

 

必須保持持續(xù)的網(wǎng)絡(luò)連接

 

擴(kuò)展性差

 

2、非連接環(huán)境

 

        中央數(shù)據(jù)存儲(chǔ)的一部分?jǐn)?shù)據(jù)可以被獨(dú)立地復(fù)制與更改,在需要時(shí)可以與數(shù)據(jù)源中的數(shù)據(jù)合并

 

優(yōu)點(diǎn)

 

可以在任何需要的時(shí)間進(jìn)行操作,在必要時(shí)才連接到數(shù)據(jù)源

 

不獨(dú)占連接

 

非連接環(huán)境的應(yīng)用提高了應(yīng)用的擴(kuò)展性與性能

 

缺點(diǎn)

 

數(shù)據(jù)不是實(shí)時(shí)的

 

必須解決數(shù)據(jù)的并發(fā)性與同步問(wèn)題

 

         對(duì)于C/S結(jié)構(gòu),連接模式還是一個(gè)不錯(cuò)的模式,在B/S結(jié)構(gòu),或者分布式的環(huán)境中,還是使用斷開(kāi)模式比較好。一方面是擴(kuò)展性比較好,另外一個(gè)方面是效率會(huì)比較高,相對(duì)于采用連接模式來(lái)說(shuō)。這取決于Connection是否還是需要象在傳統(tǒng)的C/S結(jié)構(gòu)中使用單件模式創(chuàng)建一個(gè)共享的Connection,還是象在每一個(gè)頁(yè)面都創(chuàng)建自己的Connection.

 

三、區(qū)別            

        SqlDataReader從字面上看數(shù)據(jù)讀取,在讀取數(shù)據(jù)的過(guò)程中一直與數(shù)據(jù)庫(kù)保持連接,適合數(shù)據(jù)量小的情況,執(zhí)行效率還是可以的。

        SqlDataAdapter(數(shù)據(jù)適配器)可以說(shuō)建立一個(gè)"本地?cái)?shù)據(jù)庫(kù)"--DataSet,先將數(shù)據(jù)取出來(lái)放到dataset中,然后就可以關(guān)閉數(shù)據(jù)庫(kù)了,通過(guò)sqldataadapter還可以更新刪除數(shù)據(jù)庫(kù)中的東西,可以通過(guò)封裝的Update等方法同步到數(shù)據(jù)庫(kù),這樣服務(wù)器的資源消耗就少,可以同時(shí)支持更多并發(fā)的客戶機(jī)。當(dāng)然,這需要DataSet對(duì)象的支持和配合才能完成,這是ADO.NET的卓越之處。

        兩種模式都可以搭配DataSet和DataTable使用。

四、適用范圍

1、連接

        數(shù)據(jù)量小,系統(tǒng)規(guī)模不大、客戶機(jī)和服務(wù)器在同一網(wǎng)絡(luò)內(nèi)的環(huán)境,只讀的情況下優(yōu)先選DataReader

2、非連接

        適合網(wǎng)絡(luò)數(shù)據(jù)量大、系統(tǒng)節(jié)點(diǎn)多、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,尤其是通過(guò)Internet/Intranet進(jìn)行連接的網(wǎng)絡(luò)。需要綁定數(shù)據(jù)遠(yuǎn)的情況下,需要修改數(shù)據(jù)同時(shí)更新到數(shù)據(jù)庫(kù)(非連接) 

 注:沒(méi)有那種模式是絕對(duì)的,根據(jù)自己的需要情況,各取所需,這樣節(jié)省資源,提高效率,達(dá)到事半功倍的效果。

 

 

 

 

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平利县| 玉龙| 华阴市| 鄱阳县| 建瓯市| 商城县| 武强县| 土默特左旗| 洛浦县| 高邑县| 华池县| 镇赉县| 靖江市| 岳阳市| 彭山县| 玛纳斯县| 肃南| 旌德县| 岫岩| 嘉义市| 芦山县| 含山县| 玉林市| 唐山市| 方城县| 玛多县| 青川县| 资中县| 阜城县| 苏尼特左旗| 凤庆县| 海宁市| 渭源县| 格尔木市| 尼勒克县| 嘉鱼县| 册亨县| 平乡县| 安顺市| 蓬溪县| 肃宁县|