榪炴帴鍒版暟鎹簱鏈嶅姟鍣ㄩ氬父鐢卞嚑涓渶瑕佸緢闀挎椂闂寸殑姝ラ緇勬垚銆傚繀欏誨緩绔嬬墿鐞嗛氶亾錛堜緥濡傚鎺ュ瓧鎴栧懡鍚嶇閬擄級錛屽繀欏諱笌鏈嶅姟鍣ㄨ繘琛屽垵嬈℃彙鎵嬶紝蹇呴』鍒嗘瀽榪炴帴瀛楃涓蹭俊鎭紝蹇呴』鐢辨湇鍔″櫒瀵硅繛鎺ヨ繘琛岃韓浠介獙璇侊紝蹇呴』榪愯媯鏌ヤ互渚垮湪褰撳墠浜嬪姟涓櫥璁幫紝絳夌瓑銆?
瀹為檯涓婏紝澶у鏁板簲鐢ㄧ▼搴忎粎浣跨敤涓涓垨鍑犱釜涓嶅悓鐨勮繛鎺ラ厤緗傝繖鎰忓懗鐫鍦ㄦ墽琛屽簲鐢ㄧ▼搴忔湡闂達紝璁稿鐩稿悓鐨勮繛鎺ュ皢鍙嶅鍦版墦寮鍜屽叧闂備負浜嗕嬌鎵撳紑鐨勮繛鎺ユ垚鏈渶浣庯紝ADO.NET 浣跨敤縐頒負榪炴帴姹?/em>鐨勪紭鍖栨柟娉曘?/p>
榪炴帴姹犲噺灝戞柊榪炴帴闇瑕佹墦寮鐨勬鏁般?em>姹犺繘紼?/em>淇濇寔鐗╃悊榪炴帴鐨勬墍鏈夋潈銆傞氳繃涓烘瘡涓粰瀹氱殑榪炴帴閰嶇疆淇濈暀涓緇勬椿鍔ㄨ繛鎺ユ潵綆$悊榪炴帴銆傚彧瑕佺敤鎴峰湪榪炴帴涓婅皟鐢?Open錛屾睜榪涚▼灝變細媯鏌ユ睜涓槸鍚︽湁鍙敤鐨勮繛鎺ャ傚鏋滄煇涓睜榪炴帴鍙敤錛屼細灝嗚榪炴帴榪斿洖緇欒皟鐢ㄨ咃紝鑰屼笉鏄墦寮鏂拌繛鎺ャ傚簲鐢ㄧ▼搴忓湪璇ヨ繛鎺ヤ笂璋冪敤 Close 鏃訛紝姹犺繘紼嬩細灝嗚繛鎺ヨ繑鍥炲埌媧誨姩榪炴帴姹犻泦涓紝鑰屼笉鏄湡姝e叧闂繛鎺ャ傝繛鎺ヨ繑鍥炲埌姹犱腑涔嬪悗錛屽嵆鍙湪涓嬩竴涓?Open 璋冪敤涓噸澶嶄嬌鐢ㄣ?/p>
鍙湁閰嶇疆鐩稿悓鐨勮繛鎺ュ彲浠ュ緩绔嬫睜榪炴帴銆侫DO.NET 鍚屾椂淇濈暀澶氫釜姹狅紝姣忎釜閰嶇疆涓涓睜銆傝繛鎺ョ敱榪炴帴瀛楃涓蹭互鍙?Windows 鏍囪瘑錛堝湪浣跨敤闆嗘垚鐨勫畨鍏ㄦф椂錛夊垎涓哄涓睜銆?/p>
姹犺繛鎺ュ彲浠ュぇ澶ф彁楂樺簲鐢ㄧ▼搴忕殑鎬ц兘鍜屽彲緙╂斁鎬с傞粯璁ゆ儏鍐典笅錛孉DO.NET 涓惎鐢ㄨ繛鎺ユ睜銆傞櫎闈炴樉寮忕鐢紝鍚﹀垯錛岃繛鎺ュ湪搴旂敤紼嬪簭涓墦寮鍜屽叧闂椂錛屾睜榪涚▼灝嗗榪炴帴榪涜浼樺寲銆傝繕鍙互鎻愪緵鍑犱釜榪炴帴瀛楃涓蹭慨楗扮鏉ユ帶鍒惰繛鎺ユ睜鐨勮涓恒傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙佹湰涓婚鍚庨潰鐨?#8220;浣跨敤榪炴帴瀛楃涓插叧閿瓧鎺у埗榪炴帴姹?#8221;銆?/p>
鍦ㄥ垵嬈℃墦寮榪炴帴鏃訛紝灝嗘牴鎹畬鍏ㄥ尮閰嶇畻娉曞垱寤鴻繛鎺ユ睜錛岃綆楁硶灝嗘睜涓庤繛鎺ヤ腑鐨勮繛鎺ュ瓧絎︿覆鍏寵仈銆傛瘡涓繛鎺ユ睜涓庝笉鍚岀殑榪炴帴瀛楃涓插叧鑱斻傛墦寮鏂拌繛鎺ユ椂錛屽鏋滆繛鎺ュ瓧絎︿覆騫墮潪涓庣幇鏈夋睜瀹屽叏鍖歸厤錛屽皢鍒涘緩涓涓柊姹犮傛寜榪涚▼銆佹寜搴旂敤紼嬪簭鍩熴佹寜榪炴帴瀛楃涓蹭互鍙婏紙鍦ㄤ嬌鐢ㄩ泦鎴愮殑瀹夊叏鎬ф椂錛夋寜 Windows 鏍囪瘑鏉ュ緩绔嬫睜榪炴帴銆?/p>
鍦ㄤ互涓?C# 紺轟緥涓垱寤轟簡涓変釜鏂扮殑 SqlConnection 瀵硅薄錛屼絾鏄鐞嗘椂鍙渶瑕佷袱涓繛鎺ユ睜銆傛敞鎰忥紝鏍規嵁涓?Initial Catalog 鍒嗛厤鐨勫鹼紝絎竴涓拰絎簩涓繛鎺ュ瓧絎︿覆鏈夋墍涓嶅悓銆?/p>
濡傛灉 MinPoolSize 鍦ㄨ繛鎺ュ瓧絎︿覆涓湭鎸囧畾鎴栨寚瀹氫負闆訛紝姹犱腑鐨勮繛鎺ュ皢鍦ㄤ竴孌墊椂闂翠笉媧誨姩鍚庡叧闂備絾鏄紝濡傛灉鎸囧畾鐨?MinPoolSize 澶т簬闆訛紝鍦?AppDomain 琚嵏杞藉茍涓旇繘紼嬬粨鏉熶箣鍓嶏紝榪炴帴姹犱笉浼氳鐮村潖銆傞潪媧誨姩鎴栫┖姹犵殑緇存姢鍙渶瑕佹渶灝戠殑緋葷粺寮閿銆?/p>
濡傛灉鍙戠敓鑷村懡閿欒錛堜緥濡傛晠闅滆漿縐繪垨娉ㄥ唽琛ㄤ腑鐨勫埆鍚嶆洿鏀癸級錛屾睜灝嗚嚜鍔ㄦ竻闄ゃ?/p>
榪炴帴姹犳槸涓烘瘡涓敮涓鐨勮繛鎺ュ瓧絎︿覆鍒涘緩鐨勩傚綋鍒涘緩涓涓睜鍚庯紝灝嗗垱寤哄涓繛鎺ュ璞″茍灝嗗叾娣誨姞鍒拌姹犱腑錛屼互婊¤凍鏈灝忔睜澶у皬鐨勮姹傘傝繛鎺ユ牴鎹渶瑕佹坊鍔犲埌姹犱腑錛屼絾鏄笉鑳借秴榪囨寚瀹氱殑鏈澶ф睜澶у皬錛堥粯璁ゅ間負 100錛夈傝繛鎺ュ湪鍏抽棴鎴栨柇寮鏃墮噴鏀懼洖姹犱腑銆? 鍦ㄨ姹?SqlConnection 瀵硅薄鏃訛紝濡傛灉瀛樺湪鍙敤鐨勮繛鎺ワ紝灝嗕粠姹犱腑鑾峰彇璇ュ璞°傝繛鎺ヨ鍙敤錛屽繀欏繪湭浣跨敤錛屽叿鏈夊尮閰嶇殑浜嬪姟涓婁笅鏂囨垨鏈笌浠諱綍浜嬪姟涓婁笅鏂囧叧鑱旓紝騫朵笖鍏鋒湁涓庢湇鍔″櫒鐨勬湁鏁堥摼鎺ャ?/p>
榪炴帴姹犺繘紼嬮氳繃鍦ㄨ繛鎺ラ噴鏀懼洖姹犱腑鏃墮噸鏂板垎閰嶈繛鎺ワ紝鏉ユ弧瓚寵繖浜涜繛鎺ヨ姹傘傚鏋滃凡杈懼埌鏈澶ф睜澶у皬涓斾笉瀛樺湪鍙敤鐨勮繛鎺ワ紝鍒欒璇鋒眰灝嗕細鎺掗槦銆傜劧鍚庯紝姹犺繘紼嬪皾璇曢噸鏂板緩绔嬩換浣曡繛鎺ワ紝鐩村埌鍒拌揪瓚呮椂鏃墮棿錛堥粯璁ゅ間負 15 縐掞級銆傚鏋滄睜榪涚▼鍦ㄨ繛鎺ヨ秴鏃朵箣鍓嶆棤娉曟弧瓚寵姹傦紝灝嗗紩鍙戝紓甯搞? 鎴戜滑寤鴻鎮ㄥ湪浣跨敤瀹岃繛鎺ユ椂涓瀹氳鍏抽棴榪炴帴錛屼互渚胯繛鎺ュ彲浠ヨ繑鍥炴睜銆傝鍏抽棴榪炴帴錛屽彲浠ヤ嬌鐢?Connection 瀵硅薄鐨?Close 鎴?Dispose 鏂規硶錛屼篃鍙互閫氳繃鍦?C# 鐨?using 璇彞涓垨鍦?Visual Basic 鐨?Using 璇彞涓墦寮鎵鏈夎繛鎺ャ備笉鏄樉寮忓叧闂殑榪炴帴鍙兘涓嶄細娣誨姞鎴栬繑鍥炲埌姹犱腑銆備緥濡傦紝濡傛灉榪炴帴宸茶秴鍑鴻寖鍥翠絾娌℃湁鏄懼紡鍏抽棴錛屽垯浠呭綋杈懼埌鏈澶ф睜澶у皬鑰岃榪炴帴浠嶇劧鏈夋晥鏃訛紝璇ヨ繛鎺ユ墠浼氳繑鍥炲埌榪炴帴姹犱腑銆傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?Visual Basic 鐨?a id=ctl00_rs1_mainContentContainer_ctl03 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl03',this);" tabIndex=0 >using 璇彞錛圕# 鍙傝冿級鎴?a id=ctl00_rs1_mainContentContainer_ctl04 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl04',this);" tabIndex=0 >濡備綍錛氶噴鏀劇郴緇熻祫婧?/font>銆?/p>
涓嶈鍦ㄧ被鐨?Finalize 鏂規硶涓 Connection銆丏ataReader 鎴栦換浣曞叾浠栨墭綆″璞¤皟鐢?Close 鎴?Dispose銆傚湪緇堢粨鍣ㄤ腑錛屼粎閲婃斁綾葷洿鎺ユ嫢鏈夌殑闈炴墭綆¤祫婧愩傚鏋滅被涓嶆嫢鏈変換浣曢潪鎵樼璧勬簮錛屽垯涓嶈鍦ㄧ被瀹氫箟涓寘鍚?Finalize 鏂規硶銆傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?a id=ctl00_rs1_mainContentContainer_ctl05 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl05',this);" tabIndex=0 >鍨冨溇鍥炴敹銆?/p>
榪炴帴姹犺繘紼嬪畾鏈熸壂鎻忚繛鎺ユ睜錛屾煡鎵炬病鏈夐氳繃 Close 鎴?Dispose 鍏抽棴鐨勬湭鐢ㄨ繛鎺ワ紝騫墮噸鏂板緩绔嬫壘鍒扮殑榪炴帴銆傚鏋滃簲鐢ㄧ▼搴忔病鏈夋樉寮忓叧闂垨鏂紑鍏惰繛鎺ワ紝榪炴帴姹犺繘紼嬪彲鑳介渶瑕佸緢闀挎椂闂存墠鑳介噸鏂板緩绔嬭繛鎺ワ紝鎵浠ワ紝鏈濂界‘淇濆湪榪炴帴涓樉寮忚皟鐢?Close 鍜?Dispose銆?/p>
濡傛灉榪炴帴闀挎椂闂寸┖闂詫紝鎴栨睜榪涚▼媯嫻嬪埌涓庢湇鍔″櫒鐨勮繛鎺ュ凡鏂紑錛岃繛鎺ユ睜榪涚▼浼氬皢璇ヨ繛鎺ヤ粠姹犱腑縐婚櫎銆傛敞鎰忥紝鍙湁鍦ㄥ皾璇曚笌鏈嶅姟鍣ㄨ繘琛岄氫俊涔嬪悗鎵嶈兘媯嫻嬪埌鏂紑鐨勮繛鎺ャ傚鏋滃彂鐜版煇榪炴帴涓嶅啀榪炴帴鍒版湇鍔″櫒錛屽垯浼氬皢鍏舵爣璁頒負鏃犳晥銆傛棤鏁堣繛鎺ュ彧鏈夊湪鍏抽棴鎴栭噸鏂板緩绔嬪悗錛屾墠浼氫粠榪炴帴姹犱腑縐婚櫎銆?/p>
濡傛灉瀛樺湪涓庡凡娑堝け鐨勬湇鍔″櫒鐨勮繛鎺ワ紝閭d箞鍗充嬌榪炴帴姹犵鐞嗙▼搴忔湭媯嫻嬪埌宸叉柇寮鐨勮繛鎺ュ茍灝嗗叾鏍囪涓烘棤鏁堬紝浠嶆湁鍙兘灝嗘榪炴帴浠庢睜涓彇鍑恒傝繖縐嶆儏鍐墊槸鍥犱負媯鏌ヨ繛鎺ユ槸鍚︿粛鏈夋晥鐨勭郴緇熷紑閿灝嗛犳垚涓庢湇鍔″櫒鐨勫彟涓嬈″線榪旓紝浠庤屾姷娑堜簡姹犺繘紼嬬殑浼樺娍銆傚彂鐢熸鎯呭喌鏃訛紝鍒濇灝濊瘯浣跨敤璇ヨ繛鎺ュ皢媯嫻嬭繛鎺ユ槸鍚︽浘鏂紑錛屽茍寮曞彂寮傚父銆?/p>
ADO.NET 2.0 寮曞叆浜嗕袱縐嶆柊鐨勬柟娉曟潵娓呴櫎姹狅細ClearAllPools 鍜?ClearPool銆侰learAllPools 娓呴櫎緇欏畾鎻愪緵紼嬪簭鐨勮繛鎺ユ睜錛孋learPool 娓呴櫎涓庣壒瀹氳繛鎺ュ叧鑱旂殑榪炴帴姹犮傚鏋滃湪璋冪敤鏃惰繛鎺ユ鍦ㄤ嬌鐢紝灝嗚繘琛岀浉搴旂殑鏍囪銆傝繛鎺ュ叧闂椂錛屽皢琚涪寮冿紝鑰屼笉鏄繑鍥炴睜涓?/p>
榪炴帴鏄牴鎹簨鍔′笂涓嬫枃鏉ヤ粠姹犱腑鍙栧嚭騫惰繘琛屽垎閰嶇殑銆傞櫎闈炲湪榪炴帴瀛楃涓蹭腑鎸囧畾浜?Enlist=false錛屽惁鍒欙紝榪炴帴姹犲皢紜繚榪炴帴鍦?Current 涓婁笅鏂囦腑鐧昏銆傚鏋滆繛鎺ヤ嬌鐢ㄧ櫥璁扮殑 System.Transactions 浜嬪姟鍏抽棴騫惰繑鍥炴睜涓紝榪炴帴灝嗕繚鐣欏湪姹犱腑錛屼互渚夸嬌鐢ㄧ浉鍚?System.Transactions 浜嬪姟瀵硅榪炴帴姹犵殑涓嬩竴嬈¤姹傚皢榪斿洖鐩稿悓鐨勮繛鎺ャ傚鏋滆浜嬪姟娌℃湁鍙敤榪炴帴錛屽湪璇ヨ繛鎺ユ墦寮鏃訛紝灝嗚嚜鍔ㄦ敞鍐岃榪炴帴銆?/p>
褰撹繛鎺ュ叧闂椂錛屽畠灝嗚閲婃斁鍥炴睜涓紝騫舵牴鎹叾浜嬪姟涓婁笅鏂囨斁鍏ョ浉搴旂殑瀛愰儴鍒嗐傚洜姝わ紝鍗充嬌鍒嗗竷寮忎簨鍔′粛鐒舵寕璧鳳紝浠嶅彲浠ュ叧闂榪炴帴鑰屼笉浼氱敓鎴愰敊璇傝繖鏍鳳紝鎮ㄥ氨鍙互鍦ㄩ殢鍚庢彁浜ゆ垨涓鍒嗗竷寮忎簨鍔°?/p>
SqlConnection 瀵硅薄鐨?ConnectionString 灞炴ф敮鎸佽繛鎺ュ瓧絎︿覆閿?鍊煎錛屽彲浠ョ敤浜庤皟鏁磋繛鎺ユ睜閫昏緫鐨勮涓恒傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?ConnectionString銆?/p>
姹犵鐗囨槸璁稿 Web 搴旂敤紼嬪簭涓殑涓涓父瑙侀棶棰橈紝搴旂敤紼嬪簭鍙兘浼氬垱寤哄ぇ閲忓湪榪涚▼閫鍑哄悗鎵嶄細閲婃斁鐨勬睜銆傝繖鏍鳳紝灝嗘墦寮澶ч噺鐨勮繛鎺ワ紝鍗犵敤璁稿鍐呭瓨錛屼粠鑰屽獎鍝嶆ц兘銆?/p>
榪炴帴鏍規嵁榪炴帴瀛楃涓蹭互鍙婄敤鎴鋒爣璇嗘潵寤虹珛姹犺繛鎺ャ傚洜姝わ紝濡傛灉浣跨敤緗戠珯涓婄殑鍩烘湰韜喚楠岃瘉鎴?Windows 韜喚楠岃瘉浠ュ強闆嗘垚鐨勫畨鍏ㄧ櫥褰曪紝姣忎釜鐢ㄦ埛灝嗚幏寰椾竴涓睜銆傚敖綆¤繖鏍峰彲浠ユ彁楂樺崟涓敤鎴風殑鍚庣畫鏁版嵁搴撹姹傜殑鎬ц兘錛屼絾鏄鐢ㄦ埛鏃犳硶鍒╃敤鍏朵粬鐢ㄦ埛寤虹珛鐨勮繛鎺ャ傝繖鏍瘋繕浣挎瘡涓敤鎴瘋嚦灝戜駭鐢熶竴涓笌鏁版嵁搴撴湇鍔″櫒鐨勮繛鎺ャ傝繖瀵圭壒瀹?Web 搴旂敤紼嬪簭緇撴瀯浼氫駭鐢熷壇浣滅敤錛屽洜涓哄紑鍙戜漢鍛橀渶瑕佽 閲忓畨鍏ㄦу拰瀹¤瑕佹眰銆?/p>
璁稿 Internet 鏈嶅姟鎻愪緵鍟嗗湪涓鍙版湇鍔″櫒涓婃墭綆″涓綉绔欍備粬浠彲鑳戒嬌鐢ㄥ崟涓暟鎹簱紜紿椾綋韜喚楠岃瘉鐧誨綍錛岀劧鍚庝負璇ョ敤鎴鋒垨鐢ㄦ埛緇勬墦寮涓庣壒瀹氭暟鎹簱鐨勮繛鎺ャ備笌韜喚楠岃瘉鏁版嵁搴撶殑榪炴帴灝嗗緩绔嬫睜榪炴帴錛屼緵姣忎釜鐢ㄦ埛浣跨敤銆備絾鏄紝姣忎釜鏁版嵁搴撶殑榪炴帴瀛樺湪涓涓嫭绔嬬殑姹狅紝鍥犳澧炲姞浜嗕笌鏈嶅姟鍣ㄧ殑榪炴帴鏁般?/p>
榪欎篃浼氬搴旂敤紼嬪簭璁捐浜х敓鍓綔鐢ㄣ備絾鏄紝鍙互閫氳繃涓涓浉瀵圭畝鍗曠殑鏂瑰紡閬垮厤姝ゅ壇浣滅敤錛岃屽張涓嶄細褰卞搷榪炴帴 SQL Server 鏃剁殑瀹夊叏鎬с備笉鏄負姣忎釜鐢ㄦ埛鎴栫粍榪炴帴鐙珛鐨勬暟鎹簱錛岃屾槸榪炴帴鍒版湇鍔″櫒涓婄殑鐩稿悓鏁版嵁搴擄紝鐒跺悗鎵ц Transact-SQL USE 璇彞鏉ュ垏鎹負鎵闇鐨勬暟鎹簱銆備互涓嬩唬鐮佹婕旂ず鍏ュ浣曞垱寤轟笌 master 鏁版嵁搴撶殑鍒濆榪炴帴錛岀劧鍚庡垏鎹㈠埌 databaseName 瀛楃涓插彉閲忎腑鎸囧畾鐨勬墍闇鏁版嵁搴撱?/p>
閫氳繃璋冪敤 sp_setapprole 緋葷粺瀛樺偍榪囩▼嬋媧諱簡 SQL Server 搴旂敤紼嬪簭瑙掕壊涔嬪悗錛岃榪炴帴鐨勫畨鍏ㄤ笂涓嬫枃鏃犳硶閲嶇疆銆備絾鏄紝濡傛灉鍚敤浜嗘睜錛岃繛鎺ュ皢榪斿洖姹狅紝鍦ㄩ噸澶嶄嬌鐢ㄦ睜榪炴帴鏃朵細鍑洪敊銆?/p>
濡傛灉浣跨敤鐨勬槸 SQL Server 搴旂敤紼嬪簭瑙掕壊錛屾垜浠緩璁偍鍦ㄨ繛鎺ュ瓧絎︿覆涓負搴旂敤紼嬪簭紱佺敤榪炴帴姹犮傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙佺煡璇嗗簱鏂囩珷“SQL application role errors with OLE DB resource pooling”銆?/p>
姹犵殑鍒涘緩鍜屽垎閰?/h1>
using (SqlConnection connection = new SqlConnection(
"Integrated Security=SSPI;Initial Catalog=Northwind"))
{
connection.Open();
// Pool A is created.
}
using (SqlConnection connection = new SqlConnection(
"Integrated Security=SSPI;Initial Catalog=pubs"))
{
connection.Open();
// Pool B is created because the connection strings differ.
}
using (SqlConnection connection = new SqlConnection(
"Integrated Security=SSPI;Initial Catalog=Northwind"))
{
connection.Open();
// The connection string matches pool A.
}
娉ㄦ剰
娣誨姞榪炴帴
璀﹀憡
娉ㄦ剰
縐婚櫎榪炴帴
娓呴櫎姹?/h1>
浜嬪姟鏀寔
浣跨敤榪炴帴瀛楃涓插叧閿瓧鎺у埗榪炴帴姹?/h1>
姹犵鐗?/h1>
鍥犱負闆嗘垚瀹夊叏鎬т駭鐢熺殑姹犵鐗?/h3>
鍥犱負璁稿鏁版嵁搴撲駭鐢熺殑姹犵鐗?/h3>
// Assumes that command is a SqlCommand object.
using (SqlConnection connection = new SqlConnection(
"Server=MSSQL1;uid=xxx;pwd=xxx;database=master"))
{
connection.Open();
command.ExecuteNonQuery("USE " + databaseName);
}搴旂敤紼嬪簭瑙掕壊鍜岃繛鎺ユ睜






聽聽聽
聽聽聽
聽聽聽}
}
鍏抽敭璇?/p>
鍫?/font>聽鏍?/font>