日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ASP.NET中使用web.config配置web應(yīng)用程序中的數(shù)據(jù)庫(kù)連接--西部E網(wǎng)wes...

 學(xué)海無(wú)疆 2011-02-18
ASP.NET中使用web.config配置web應(yīng)用程序中的數(shù)據(jù)庫(kù)連接
作者:boyking 發(fā)布時(shí)間:2004-9-1 14:57:01 文章來(lái)源:boyking's Blog
你會(huì)經(jīng)常碰到這種情況:幾乎在網(wǎng)站的每個(gè)頁(yè)面上,存儲(chǔ)一些全局處理信息。理想的做法是將這些信息一次性的集中存儲(chǔ)在資料檔案庫(kù)中,而不是在網(wǎng)站的每個(gè)頁(yè)面上都重復(fù)這樣的操作。比如說(shuō)數(shù)據(jù)庫(kù)連接串就是這樣的信息,如果這些信息不是集中存儲(chǔ)在特定區(qū)域中,而是在網(wǎng)站的每個(gè)需要連接數(shù)據(jù)庫(kù)的頁(yè)面上手工輸入,可以設(shè)想:當(dāng)數(shù)據(jù)庫(kù)連接串改動(dòng)時(shí)將會(huì)令人頭痛,你必須遍歷網(wǎng)站中所有連接數(shù)據(jù)庫(kù)的頁(yè)面去修改!
在ASP.NET中,通過(guò)Web.config,你可為使用 <appSettings> 標(biāo)記,在這個(gè)標(biāo)記中,你可用 <add ... /> 標(biāo)記定義0到多個(gè)設(shè)置。本文中我們主要討論了如何使用web.config來(lái)配置一個(gè)web應(yīng)用程序中的數(shù)據(jù)庫(kù)連接。

web.config文件是標(biāo)準(zhǔn)的xml文件,我們可以使用它來(lái)為一臺(tái)機(jī)器下的每一個(gè)web應(yīng)用程序或某個(gè)應(yīng)用程序或一個(gè)目錄下的asp.net頁(yè)面來(lái)進(jìn)行設(shè)置,當(dāng)然,它也可以為一個(gè)單獨(dú)的web頁(yè)面進(jìn)行設(shè)置。

如:網(wǎng)站的主目錄是\inetpub\wwwroot\,那么我們將web.config放置于其下,那么這個(gè)網(wǎng)站中的應(yīng)用程序?qū)⒈粀eb.config中的設(shè)置所影響。
e.g.:
<?xml version="1.0" encoding="gb2312" ?>
<configuration>
 <system.web>
  <compilation defaultlanguage="vb" debug="true" />
  <customerrors mode="remoteonly" defaultredirect="js/error.htm">
   <error statuscode="404" redirect="js/filenotfound.aspx" />
   <error statuscode="500" redirect="js/error.htm" />
  </customerrors>
  <authentication mode="windows" />
  <authorization>
   <allow users="*" />
  </authorization>
  <httpruntime maxrequestlength="4000" usefullyqualifiedredirecturl="true" executiontimeout="45" />
  <trace enabled="false" requestlimit="10" pageoutput="false" tracemode="sortbytime" localonly="true" />
  <sessionstate mode="inproc" stateconnectionstring="tcpip=127.0.0.1:43444" cookieless="false" timeout="20" />
  <globalization requestencoding="gb2312" responseencoding="gb2312" fileencoding="gb2312" />
 </system.web>
 <appsettings>
  <add key="connstring" value="uid=flash;password=3.1415926;database=news;server=(local)" />
 </appsettings>
</configuration>

這里我們討論一下如何在web.config中設(shè)置數(shù)據(jù)庫(kù)連接。

1、連接一個(gè)數(shù)據(jù)庫(kù):
在web.config中的<configuration>后加入

<appsettings>
    <add key="connstring" 
    value="uid=flash;password=3.1415926;database=news;server=(local)" />
</appsettings>

在程序中,你可以使用以下代碼來(lái)使用web.config中的設(shè)置:

-----vb.net-----
imports system.configuration
dim myvar as string 
 myvar=configurationsettings.appsettings("connstring"
-----c#-----
using system.configuration;
string myvar;
myvar=configurationsettings.appsettings["connstring"];

2、連接多個(gè)數(shù)據(jù)庫(kù)
同理,那就是使用多個(gè)不同的key值來(lái)設(shè)置

3、設(shè)置不同子目錄下應(yīng)用程序的數(shù)據(jù)庫(kù)鏈接
這是一個(gè)很有意思的方法,在設(shè)置前,先說(shuō)明一下它的用途:
如果在一個(gè)虛擬目錄下有多個(gè)子目錄,每一個(gè)子目錄下下的web應(yīng)用程序都需要連接不同的數(shù)據(jù)庫(kù),這如何做呢??
一種方法是在每一個(gè)子目錄下分別建立一個(gè)web.config,用它來(lái)設(shè)置這個(gè)目錄下的數(shù)據(jù)庫(kù)連接。但這種方法的問(wèn)題是需要維護(hù)每一個(gè)了目錄下的web.config。

方法二,是只在虛擬目錄下建立一個(gè)web.config,在它里面設(shè)置每一個(gè)子目錄下的應(yīng)用程序的數(shù)據(jù)庫(kù)連接。說(shuō)到這里,你會(huì)想到上面的第二種方法,使用多個(gè)不同的key值來(lái)設(shè)置,這的確是一個(gè)辦法。

這里,我想說(shuō)明的是另一種方法:在虛擬目錄下布置web.config,在其中使用location標(biāo)記,使用同一個(gè)key值來(lái)連接數(shù)據(jù)庫(kù),這樣做的好處很明顯,因?yàn)橛猛粋€(gè)key值,將導(dǎo)致在所有目錄下的應(yīng)用程序中,都可以使用共同的語(yǔ)句來(lái)連接數(shù)據(jù)庫(kù),這在程序以后發(fā)生位置遷移時(shí),并不用修改程序中連接數(shù)據(jù)庫(kù)的語(yǔ)句。
具體設(shè)置如下:

<location path="news">
<appsettings>
 <add key="connstring" value="uid=flyangel;password=3.1415926;database=news;server=(local)"  />
 </appsettings>
</location>
<location path="bbs">
 <appsettings>
  <add key="connstring" value="uid=flyangel;password=3.1415926;database=bbs;server=(local)" />
 </appsettings>
</location>
<location path="soft">
 <appsettings>
  <add key="connstring" value="uid=flyangel;password=3.1415926;database=soft;server=(local)" />
 </appsettings>
</location>

注:上例中news、bbs、soft分別是虛擬目錄下的子目錄。
程序中使用連接時(shí),采用下面的方法:
public function getconnectionstring()
 configurationsettings.appsettings().item("connstring"
end sub

最后需要說(shuō)明的一點(diǎn)是,為了有效地利用.config文件,你應(yīng)當(dāng)創(chuàng)建標(biāo)準(zhǔn)的鍵名和值定義供所有的應(yīng)用程序開(kāi)發(fā)人員所用。這樣就可以讓同一項(xiàng)目的開(kāi)發(fā)人員采用公共的項(xiàng)目設(shè)置。這些標(biāo)準(zhǔn)在部署應(yīng)用程序和將其轉(zhuǎn)化為產(chǎn)品的時(shí)候非常有用。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多