ASP.NET中cs文件獲取webconfig里的connectionstring


web.config里面這樣寫:
 

 

    調用的時候:
    string strConn = ConfigurationManager.ConnectionStrings["鏈接字符串名字"].ToString();

   <connectionStrings>
    <add name="鏈接字符串名字" connectionString="server=\'(local)\'; trusted_connection=true; database=\'CMB\>
    </connectionStrings>

 

web.config中的數據庫連接字符串:
<connectionStrings>
<add name="eStoreConnectionString" connectionString="Data Source=數據源;Initial Catalog=數據庫;Persist Security Info=True;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>

 

Persist Security Info屬性的意思是表示是否保存安全信息,其實可以簡單的理解為"ADO在數據庫連接成功后是否保存密碼信息", True表示保存,False表示不保存

 

 

一、使用OleDbConnection對象連接OLE DB數據源

1.連接Access 數據庫

         Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data Source=Access文件路徑”

         Access 2003: “provider=Microsoft.Jet.Oledb.4.0;Data Source=Access文件路徑”

         Access 2007: “provider=Microsoft.Ace.Oledb.12.0;Data Source=Access文件路徑”

    備注:Access數據庫只提供兩個連接屬性provider(數據提供程序)和data source(數據源);

Access2000/2003的文件格式是“.mdb”,,Access2007的文件格式是“.accdb”;

Access的數據提供程序版本是向下兼容的,在Win7下測試使用Microsoft.Jet.OLEDB.3.5提示“未在本地計算機上注冊“Microsoft.Jet.OLEDB.3.5”提供程序。”,改用Microsoft.Jet.OLEDB.4.0或者Microsoft.Ace.OLEDB12.0完全可以訪問Access2000的數據庫文件。當然也可以嘗試使用微軟提供的MDAC 來修改provider的版本。

2.連接Excel數據庫

         Excel 2003: “provider=Microsoft.Jet.OLEDB.4.0;Data Source=Access文件路徑;extended properties=excel 8.0”

         Excel 2007: “provider=Microsoft.Ace.OLEDB.12.0;Data Source=Access文件路徑;extended properties=excel 12.0”

         備注:在代碼中引用工作表時,應將表名表示為“[工作表名$]”,遇到字段為數據庫保留關鍵字時,給該字段名加上[]以示區別,

如定義select 語句時:string connStr=”select * from [login$] where username=’abc’ and [password]=’abc123’ ”;

                     如果在數據表中用數字作為文本類型數據時,則應在數字前加單引號將默認的數值強行設定為文本類型。

3.連接SQL Server數據庫

“provider=SQLOLEDB;Data Source=服務器名;Initial Catalog=數據庫名;uid=用戶;pwd=密碼”

 

二、使用SqlConnection對象連接SQL Server數據庫

         聲明:以下連接的屬性都可以參考“SQL Server 數據庫連接字符串參數一覽表”取它的別名;

除了必須設置的屬性以外還可以設置其他輔助的屬性。如Connect Timeout、Encrypt等

         設置數據庫文件路徑的方法:

         1.使用絕對路徑:“AttachDbFilename=D://Solution1//Web//App_Data//data.mdf”

         2.使用服務器相對路徑:“AttachDbFilename=”+Server.MapPath(“//App_Data//data.mdf”)

         3.使用最簡單的相對路徑:“AttachDbFilename=|DataDirectory|//data.mdf”

       推薦使用第3種方式,“|DataDirectory|”代表ASP.NET項目里自動創建的App_Data文件夾

1.以SQL Server驗證模式連接SQLServer

(1)以數據庫名連接方式

    “Server=服務器名;Database=數據庫名稱;User ID=用戶名;Password=密碼”

    或者(使用縮寫與別名)

    “Server=服務器名; Initial Catalog=數據庫名稱;Uid=用戶;Pwd=密碼”

(2)以數據庫文件完整路徑連接方式

    “Serve=服務器名;AttachDbFilename=數據庫文件路徑;User ID=用戶名;Password=密碼”

示例:

    “Server=./SQLEXPRESS; Database=DatabaseName; User ID =sa; Password=abc123”

         “Server=./SQLEXPRESS; Initial Catalog =DatabaseName; Uid =sa; Pwd=abc123”

         “Server=(local)/SQLEXPRESS; AttachDbFilename=D://Solution1//Web//App_Data//data.mdf;User ID =sa; Password=abc123”

備注:密碼可以為空。

2.以Windows 驗證模式連接SQL Server

(1)以數據庫名連接方式

“Server=服務器名;Database=數據庫名稱;Integrated Security=SSPI”

(2)以數據庫文件完整路徑連接方式

“Serve=服務器名;AttachDbFilename=數據庫文件路徑; Integrated Security=true”

示例:

“Server=服務器名;Database=數據庫名稱;Integrated Security=SSPI”

“Server=(local)/SQLEXPRESS; AttachDbFilename=D://Solution1//Web//App_Data//data.mdf;Integrated Security=true”

備注:SSPI即為true

 

三、使用OdbcConnection對象連接ODBC數據源

“Driver=數據庫提供程序名;Server=服務器名; Database=數據庫名;Trusted_Connection=yes”

示例:

    首先要在計算機管理à數據源à配置好相對應的數據源(選擇數據庫類型,設置數據庫文件路徑與相對應的數據庫名)

    “Driver= Microsoft.Jet.OLEDB.4.0;Server=./SQLEXPRESS; Database=DatabaseName;Trusted_Connection=yes”

 

四、使用OracleConnection對象連接Oracle數據庫

Data Source=Oracle8i;Integrated Security=yes

 

五、在ASP.NET項目中的web.config文件里配置數據庫連接並在程序代碼中獲取連接字符串

1.在<connectionStrings> 標簽里添加連接

<connectionStrings>   

<add name="ConnectionName" connectionString="Server=./SQLEXPRESS;Database=DatabaseName;User ID=sa;Password=abc123"   

providerName="System.Data.SqlClient" />   

</connectionStrings>

或者

<connectionStrings>   

<add name="ConnectionName" connectionString="Server=./SQLEXPRESS;AttachDbFilename=|DataDirectory|//data.mdf;Integrated Security=true"

providerName="System.Data.SqlClient" />   

</connectionStrings>

在程序代碼中獲取<connectionStrings> 標簽里的連接字符串:

引用命名空間:Using  System.Configuration ;

string connStr = ConfigurationManager.ConnectionStrings["ConnectionName"].ToString();

 

2.在<appSettings>標簽里添加連接

<appSettings>

         <add key="ConnectionName" value="Server=./SQLEXPRESS;Database=DatabaseName;User ID=sa;Password=abc123" />

</appSettings>

或者

<appSettings>

         <add key="ConnectionName" value="Server=./SQLEXPRESS;AttachDbFilename=|DataDirectory|//data.mdf;Integrated Security=True" />

</appSettings>

在程序代碼中獲取<appSettings> 標簽里的連接字符串:

引用命名空間:Using  System.Configuration ;

string connStr = ConfigurationManager.AppSettings["ConnectionName"].ToString();  

 

備注:.NET2.0以后連接數據庫的字符串可以放在這兩個不同的地方,但是,如果是用綁定的數據控件(eg:SQLDataSource),那么連接串,只能在放<connectionStrings> 標簽里

 

原文地址:ASP.NET 連接字符串的多種寫法

#1 connectionString放在什么地方
首先肯定放在web.config里面,原因不多說了
有兩個地方
1 appSetting小節?
2 connectionStrings小節?


1 appSetting小節?
調用方法
ConfigurationManager.AppSettings[""].ToString()
這里只是保存了一個字符串,沒有其他東西
讀取的時候也可以用ConfigurationSettings像asp.net1.1一樣,不過MS說這個過時的方法
這是asp.net1.1的做法

2 connectionStrings小節?
調用方法
ConfigurationManager.ConnectionStrings[""].ConnectionString
在這里定義的ConnectionString可以直接被各種數據源控件如SqlDataSource通過如 <%$ ConnectionStrings:Pubs.ProviderName %>調用,顯然更強大
它是如何做到的?
這里定義name和字符串的同時,還可以定義Provider
Provide默認一般設置為System.Data.SqlClient,它是個什么東西?
開始以為這個表示System.Data.SqlClient命名空間,感覺語法很奇怪,后來研究半天,這里只不過是一個字符串,利用了命名空間的名稱而已,沒有任何實際意義,刪掉或者該成其他的值都可以,但也不是完全沒有用處,在使用數據工廠的時候需要他,這個字符串是一個約定

關於數據庫工廠:
一般來說在我們的數據庫通用類里面讀取web.config里面的參數(比如連接字符串),然后使用SqlConnection SqlCommand等操作,這樣很明顯需要為每種不同的數據庫編寫不同的程序,PetShop里面就是這么實現的,它分別實現了SqlHelper和OracleHelpe人兩個類,為了適應這兩個數據庫訪問類,還分別實現了不同的dal層,這其實不是很好的解決辦法(asp.net1.1沿用下來的),asp.net2.0還有更簡單的方法,就是使用數據庫工廠

首先要創建一個工廠,這個工廠之后會負責創建需要的Connection Command等
DbProviderFactory dbFactory = DbProviderFactories.GetFactory(“”); 需要傳入一個字符串,就是ProvideName的東西了,比如System.Data.SqlClient
這里就可以這么寫:
        private static DbProviderFactory dbFactory = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ProviderName);  //用到ProviderName了

        public static void ttt1()
        {
            DbConnection conn = dbFactory.CreateConnection();
            DbCommand cmd = dbFactory.CreateCommand();
        }
這樣得到的conn cmd就是通用的了,加入上面定義的是System.Data.SqlClient,其實這里就得到SqlConnection和SqlCommand


關於找不到ConfigurationManager的錯誤
有時候會死活找不到ConfigurationManager類,這是因為asp.net2.0中有好幾個System.Configuration類...汗,因為有的是兼容1.1的,所以會這樣,比如新建了一個項目,需要手動添加應用System.Configuration.dll,然后才能用到ConfigurationManager,否則系統默認使用asp.net1.1的東西

為了使用asp.net2.0的強大功能.....我把ConnectionStrings都放在這里

轉載於:https://www.cnblogs.com/yayx/archive/2007/06/04/770489.html

Data Source - 或 - Server - 或 - Address - 或 - Addr - 或 - Network Address :

要連接的 SQL Server 實例的名稱或網絡地址。可以在服務器名稱之后指定端口號:

server=tcp:servername, portnumber

指定本地實例時,始終使用 (local)。若要強制使用某個協議,請添加下列前綴之一:

np:(local), tcp:(local), lpc:(local)

Initial Catalog - 或 - Database : 數據庫的名稱。

Integrated Security - 或 - Trusted_Connection :

當為 false 時,將在連接中指定用戶 ID 和密碼。當為 true 時,將使用當前的 Windows 帳戶憑據進行身份驗證。

可識別的值為 true、false、yes、no 以及與 true 等效的 sspi(強烈推薦)。

User ID :SQL Server 登錄帳戶。

Password - 或 - Pwd :SQL Server 帳戶登錄的密碼。

Persist Security Info:

Persist Security Info屬性的意思是表示是否保存安全信息,其實可以簡單的理解為"ADO在數據庫連接成功后是否保存密碼信息",
True表示保存,False表示不保存
ADO缺省為True
(ADO.net缺省為False,未測試,根據參考資料上說的)
具體可以通過ADO的Connect對象的ConnectString屬性進行驗證,如下所示(以下在Delphi7中測試通過):
----------------------------------------------------------------------------------------------------------
數據庫連接前
ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22; Persist Security Info=false"
數據庫連接成功后
ConnectString="Provider=MSDAORA.1;User ID=yzs;Data Source=ydgl22"
----------------------------------------------------------------------------------------------------------
數據庫連接前
ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22; Persist Security Info=true"
數據庫連接成功后
ConnectString="Provider=MSDAORA.1; Password=mypassword;User ID=dlyx;Data Source=ydgl22"
----------------------------------------------------------------------------------------------------------
 總體來說,如果數據庫連接成功后不再需要連接的密碼,出於安全性考慮,還是建議將Persist Security Info設為false,以防止后門程序取得數據庫連接的密碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM