注冊(cè)表中存儲(chǔ)數(shù)據(jù)庫(kù)鏈接字符串的方法
更新時(shí)間:2008年01月21日 14:59:33 作者:
注冊(cè)表中存儲(chǔ)數(shù)據(jù)庫(kù)鏈接字符串的方法
數(shù)據(jù)庫(kù)的鏈接字符串是用數(shù)據(jù)庫(kù)開(kāi)發(fā)所必須的信息,我們通過(guò)鏈接字符串連接數(shù)據(jù)庫(kù),并進(jìn)行各種數(shù)據(jù)庫(kù)操作。那么鏈接字符串的存到哪里好呢?這沒(méi)有什么定論,Asp系統(tǒng)開(kāi)發(fā)中,一般存在一個(gè)conn.asp包含文件中或者如果又是COM,可能還會(huì)封閉到COM中,.Net開(kāi)發(fā)中,大多數(shù)都選擇存在Web.conifg中,也有人存儲(chǔ)在另外一個(gè)單獨(dú)的文件中。那么本文提供的是把數(shù)據(jù)庫(kù)鏈接信息存儲(chǔ)到注冊(cè)表中的方案。也許你要問(wèn)為什么要存到注冊(cè)表呢?我想最起碼的好處是安全,注冊(cè)表的訪問(wèn)權(quán)限很高,一般遠(yuǎn)程服務(wù)在沒(méi)有得到管理員賬號(hào)的情況下是沒(méi)有權(quán)限來(lái)對(duì)注冊(cè)表進(jìn)行操作的,那么用來(lái)連接數(shù)據(jù)庫(kù)的賬戶信息便安全許多。
一、在注冊(cè)表中建立相應(yīng)的鍵及值:
有三種方法可以在注冊(cè)表中添加我們需要的信息:
1、純手工的方法:開(kāi)始->運(yùn)行->Regedit,然后在相應(yīng)的位置新建所需要的鍵和值。
2、運(yùn)行一個(gè)注冊(cè)表注冊(cè)程序:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\TownSite]
"Town"="server=localhost;database=Town;User Id=sa;Pwd=pass"
將上面的代碼保存成一個(gè).Reg文件,然后雙擊運(yùn)行便可以在相應(yīng)的位置添加相應(yīng)的信息。
3、程序?qū)崿F(xiàn)(C#):
RegistryKey regKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\\TownSite");
regKey.SetValue(dbName,"server=Hi4-kelvin-yu;database=Test;User ID=sa;Pwd=pass");
說(shuō)明:C#有對(duì)注冊(cè)表進(jìn)行處理的類(lèi)和方法,首先要引入命名空間Microsoft.Win32 ,CreateSubKey方法會(huì)自動(dòng)檢測(cè)有沒(méi)有相應(yīng)的鍵值,如果沒(méi)有則會(huì)創(chuàng)建,如果有則返回表示該鍵的RegistryKey的實(shí)例,如果可以確定有鍵值的話,也可以用OpenSubKey打開(kāi)。dbName是值名,通過(guò)變量傳過(guò)來(lái)。
二、讀取鍵值:
讀取鍵值非常簡(jiǎn)單
RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\TownSite", false);
connectionString = regKey.GetValue(dbName).ToString().Trim();
說(shuō)明:從相應(yīng)的鍵處讀取值信息,然后得到數(shù)據(jù)庫(kù)鏈接字符串賦給一變量或者屬性,然后就可以進(jìn)行數(shù)據(jù)庫(kù)連接了。
三、一點(diǎn)說(shuō)明:
如果采用程序的方式創(chuàng)建注冊(cè)表的鍵值,就要確保aspnet用戶有對(duì)注冊(cè)表的操作權(quán)限,方法如下:“開(kāi)始->運(yùn)行”,輸入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,選擇“安全->權(quán)限->添加”,然后找到本機(jī)的“AspNet”用戶,加進(jìn)來(lái)并且給讀取權(quán)限就好了,加進(jìn)來(lái)后目錄中會(huì)多一個(gè)“aspnet_wp account”
一、在注冊(cè)表中建立相應(yīng)的鍵及值:
有三種方法可以在注冊(cè)表中添加我們需要的信息:
1、純手工的方法:開(kāi)始->運(yùn)行->Regedit,然后在相應(yīng)的位置新建所需要的鍵和值。
2、運(yùn)行一個(gè)注冊(cè)表注冊(cè)程序:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\TownSite]
"Town"="server=localhost;database=Town;User Id=sa;Pwd=pass"
將上面的代碼保存成一個(gè).Reg文件,然后雙擊運(yùn)行便可以在相應(yīng)的位置添加相應(yīng)的信息。
3、程序?qū)崿F(xiàn)(C#):
RegistryKey regKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\\TownSite");
regKey.SetValue(dbName,"server=Hi4-kelvin-yu;database=Test;User ID=sa;Pwd=pass");
說(shuō)明:C#有對(duì)注冊(cè)表進(jìn)行處理的類(lèi)和方法,首先要引入命名空間Microsoft.Win32 ,CreateSubKey方法會(huì)自動(dòng)檢測(cè)有沒(méi)有相應(yīng)的鍵值,如果沒(méi)有則會(huì)創(chuàng)建,如果有則返回表示該鍵的RegistryKey的實(shí)例,如果可以確定有鍵值的話,也可以用OpenSubKey打開(kāi)。dbName是值名,通過(guò)變量傳過(guò)來(lái)。
二、讀取鍵值:
讀取鍵值非常簡(jiǎn)單
RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\TownSite", false);
connectionString = regKey.GetValue(dbName).ToString().Trim();
說(shuō)明:從相應(yīng)的鍵處讀取值信息,然后得到數(shù)據(jù)庫(kù)鏈接字符串賦給一變量或者屬性,然后就可以進(jìn)行數(shù)據(jù)庫(kù)連接了。
三、一點(diǎn)說(shuō)明:
如果采用程序的方式創(chuàng)建注冊(cè)表的鍵值,就要確保aspnet用戶有對(duì)注冊(cè)表的操作權(quán)限,方法如下:“開(kāi)始->運(yùn)行”,輸入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,選擇“安全->權(quán)限->添加”,然后找到本機(jī)的“AspNet”用戶,加進(jìn)來(lái)并且給讀取權(quán)限就好了,加進(jìn)來(lái)后目錄中會(huì)多一個(gè)“aspnet_wp account”
相關(guān)文章
VS2010中呈現(xiàn)控件時(shí)出錯(cuò)的解決方法
如何解決“呈現(xiàn)控件時(shí)出錯(cuò)”的問(wèn)題,這篇文章主要介紹了VS2010中出現(xiàn)"呈現(xiàn)控件時(shí)出錯(cuò)"問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
asp.net實(shí)現(xiàn)在線音樂(lè)播放器示例
這篇文章主要介紹了asp.net實(shí)現(xiàn)在線音樂(lè)播放器示例,需要的朋友可以參考下2014-02-02
ASP.NET Core 2.2中的Endpoint路由詳解
這篇文章主要介紹了ASP.NET Core 2.2中的Endpoint路由詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
asp.net開(kāi)發(fā)中常見(jiàn)公共捕獲異常方式總結(jié)(附源碼)
這篇文章主要介紹了asp.net開(kāi)發(fā)中常見(jiàn)公共捕獲異常方式總結(jié),結(jié)合實(shí)例形式較為詳細(xì)的分析了asp.net捕獲異常的相關(guān)技巧,并提供了完整的實(shí)例代碼供讀者下載參考,需要的朋友可以參考下2015-11-11
Web.config 和 App.config 的區(qū)別分析
Web.config 和 App.config 的區(qū)別分析,需要的朋友可以參考一下2013-05-05
asp.net CheckBoxList各項(xiàng)最小寬度CSS樣式(兼容性good)
ASP.NET中,CheckBoxList里的選擇都是自動(dòng)寬度的,屬性時(shí)沒(méi)有設(shè)置各項(xiàng)寬度的設(shè)置,在IE10、遨游4極速模式及兼容模式下均可正確顯示最小寬度,此樣式除了用于CheckBoxList外,也可用于DIV等2013-04-04
Entity?Framework使用配置伙伴創(chuàng)建數(shù)據(jù)庫(kù)
這篇文章介紹了Entity?Framework使用配置伙伴創(chuàng)建數(shù)據(jù)庫(kù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
ASP.NET單選按鈕控件RadioButton常用屬性和方法介紹
RadioButton又稱單選按鈕,其在工具箱中的圖標(biāo)為 ,單選按鈕通常成組出現(xiàn),用于提供兩個(gè)或多個(gè)互斥選項(xiàng),即在一組單選鈕中只能選擇一個(gè)2014-04-04

