【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程!【道勤網(wǎng)】

標(biāo)題: Asp.net中Web.config連接字符串及配置數(shù)據(jù)庫(kù)sqlserver [打印本頁(yè)]

作者: 學(xué)習(xí)NO.1    時(shí)間: 2016-10-17 12:58
標(biāo)題: Asp.net中Web.config連接字符串及配置數(shù)據(jù)庫(kù)sqlserver
近日正在看Asp.NET,看到Web.config有很不清楚之處,特意從網(wǎng)絡(luò)、MSDN搜集、歸納和整理,供大家分享。
在ASP.NET的web.config中,可以用兩種方式來(lái)寫連接字符串的配置。


<configuration>   <appSettings>      <add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=true"/>      <add key="connstr2" value=".........">   </appSettings>   <connectionStrings>      <add name="connstr3" connectionString="........" />      <add name="connstr4" connectionString="......" providerName="System.Data.Sqlclient"   </connectionStrings></configuration>

如上代碼所示:兩種方式為appSettings和connectionStrings

appSettings:

         ①它是asp.net1.1的時(shí)候用的,在vs2003中用的

         ②里面存的相當(dāng)于鍵值對(duì)的形式,key和value。不僅僅可以存連接字符串,還可以存儲(chǔ)一些配置項(xiàng)。其中value中包括數(shù)據(jù)庫(kù)服務(wù)器地址、用戶名和密碼、數(shù)據(jù)庫(kù)名稱等信息。

         ③在appSettings中,不能使用ProviderName="System.Data......."(不過(guò)如果你要用也可以,只要寫在value里面就可以了,當(dāng)成值傳遞過(guò)去)

         ④在后臺(tái)取值方式用代碼:


     string conn=System.Configuration.ConfigurationManager.AppSettings["connstr";]

connectionStrings:

         ①它是asp.net2.0中新增的。

         ②里面存的也類似于鍵值對(duì)的形式,使用的是name和connectionString,一般就存連接字符串。

         ③在connectionStrings中可以,可以使用providerName.

         ④在后臺(tái)代碼,取值的方式:

     string conn=System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;其它說(shuō)明:        ①Initial Catalog=Database就是數(shù)據(jù)庫(kù)名稱,根據(jù)從網(wǎng)絡(luò)上搜集到的信息看,兩者好像可以完全通用,基本沒(méi)有區(qū)別。             Integrated Security集成安全選項(xiàng)設(shè)置,可識(shí)別的值為 true、false、yes、no以及與true等效的sspi。當(dāng)為 false 時(shí),將在連接中指定用戶ID和密碼。當(dāng)為true時(shí),將使用當(dāng)前的Windows 帳戶憑據(jù)進(jìn)行身份驗(yàn)證。其中SSPI為Security Supoort Provider Interface即安全支持提供者接口,Microsoft安全支持提供器接口(SSPI)是定義得較全面的公用API,用來(lái)獲得驗(yàn)證、信息完整性、信息隱私等集成安全服務(wù),以及用于所有分布式應(yīng)用程序協(xié)議的安全方面的服務(wù)。應(yīng)用程序協(xié)議設(shè)計(jì)者能夠利用該接口獲得不同的安全性服務(wù)而不必修改協(xié)議本身。SQL Server 數(shù)據(jù)庫(kù)連接字符串中,Integrated Security=SSPI 表示使用 Windows 身份驗(yàn)證,即使用運(yùn)行當(dāng)前應(yīng)用程序的用戶來(lái)連接 SQL Server,對(duì)網(wǎng)頁(yè)來(lái)說(shuō),一般是 IIS 中的匿名用戶。   
既然connectionStrings是2.0版本出來(lái)的,那它肯定比appsettings有好處了
網(wǎng)上如是說(shuō):
         ① 可將連接字符串加密,使用MS的一個(gè)加密工具即可。
         ② 可直接邦定的數(shù)據(jù)源控件,而不必寫代碼讀出來(lái)再賦值給控件。
         ③ 可方便的更換數(shù)據(jù)庫(kù)平臺(tái),如換為Oracle數(shù)據(jù)庫(kù),只需修改providerName
providerName它的作用是什么呢?
我們先看一下providerName的參數(shù)值。
①providerName="System.Data.SqlClient"  ----說(shuō)明使用的是MSSQLServer數(shù)據(jù)庫(kù)②providerName="System.Data.SqlLite"  ----說(shuō)明使用的是SQLLite數(shù)據(jù)庫(kù)③providerName="System.Data.OracleClient"  ----說(shuō)明使用的是Oracle數(shù)據(jù)庫(kù)或providerName="System.Data.Oracle.DataAccess.Client"  ----同上④providerName="System.Data.OleDb"   ----說(shuō)明使用的是Access數(shù)據(jù)庫(kù)
providerName可寫可不寫。
我們什么時(shí)候用providerName呢?
比如,我們現(xiàn)在要做一個(gè)項(xiàng)目,以后會(huì)賣個(gè)兩個(gè)企業(yè)使用:A和B。這就有不確定因素了,A使用Oracle,B使用SQLserver。
所以,
      ①數(shù)據(jù)庫(kù):我們需要建兩個(gè)庫(kù),一個(gè)用oracle,一個(gè)用Sqlserver。
      ②程序:我們一般不去寫兩個(gè)系統(tǒng)讓他們使用,我們肯定會(huì)去判斷,先判斷他們使用的是什么數(shù)據(jù)庫(kù),然后再在程序里執(zhí)行什么樣的數(shù)據(jù)庫(kù)腳本。
      ③web.config代碼:
<configuration>  <connectionStrings>    <add name="connStr" connectionString="Data Source=.;Initial Catalog=mydb;Integrated Security=true" providerName="System.Data.SqlClient"/>  </connectionStrings></configuration>      ④程序代碼:進(jìn)行判斷,如果providerName="System.Data.SqlClient"則執(zhí)行SQLServer的腳本,如果providerName="System.Data.OracleClient"則調(diào)用Oracle的數(shù)據(jù)庫(kù)腳本。
public static readonly string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ProviderName;public static string databaseType = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ProviderName;public static int ExecuteNonQuery(CommandType commandType, string commandText, params System.Data.OleDb.OleDbParameter[] parm){    int num = 0;    if (databaseType == "System.Data.SqlClient")    {        //此處執(zhí)行Microsoft SQLServer的數(shù)據(jù)庫(kù)腳本    }    else if (databaseType == "System.Data.OracleClient")    {        //此處執(zhí)行Oracle的數(shù)據(jù)庫(kù)腳本    }    return num;}常見(jiàn)的數(shù)據(jù)庫(kù)連接代碼(C#):SqlConnection conn = new SqlConnection( “Server=(local);Integrated Security=SSPI;database=Pubs“);SqlConnection conn = new SqlConnection(“server=(local)\NetSDK;database=pubs;Integrated Security=SSPI“);SqlConnection conn = new SqlConnection(“Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;“);SqlConnection conn = new SqlConnection(“ data source=(local);initial catalog=xr;integrated security=SSPI;persist security info=False;workstation id=XURUI;packet size=4096; “);SqlConnection myConn  = new System.Data.SqlClient.SqlConnection(“Persist Security Info=False;IntegratedSecurity=SSPI;database=northwind;server=mySQLServer“);SqlConnection conn = new SqlConnection( “ uid=sa;pwd=passwords;initial catalog=pubs;data source=127.0.0.1;Connect Timeout=900“);
相關(guān):web.config配置文件詳解
關(guān)于asp.net網(wǎng)站管理工具安全選項(xiàng)無(wú)法連接到Sql server數(shù)據(jù)庫(kù)









歡迎光臨 【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程!【道勤網(wǎng)】 (http://bmrsportswear.com/) Powered by Discuz! X3.4