在ASP.NET開發的網站根目錄,有一個名為web.config的檔案,顧名思義,這是為整個網站進行配置的檔案,其格式為XML格式。
這裡主要談談檔案中的<connectionStrings>節。 <connectionStrings>節是對串連到資料庫的字串進行配置,由於MS SQL Server與ASP.NET同屬於微軟的產品,因此是使用ASP.NET開發時首選的資料庫是MS SQL Server,本文只討論對MS SQL Server的連接字串情況。
第一種情況,本地開發時,使用本機資料庫,如下面的代碼
複製代碼 代碼如下:<connectionStrings>
<add name="myConn"
connectionString ="Data Source=(LocalDB) \v11.0;AttachDbFilename=|DataDirectory| \Movies.mdf;Integrated Security=True" providerName ="System.Data.SqlClient" />
</connectionStrings>
討論:
這是使用PC進行本地開發最常用的資料庫連接字串使用方式。其中,
name屬性指的是連接字串名稱,網站中需要使用資料庫時,都需要引用這個連接字串名稱;本例中為myConn;
Data Source屬性是資料庫伺服器,(LocalDB)\V11.0說明使用本機資料庫伺服器,版本號碼為11,即SQL Server 2012;
AttachDbFilename屬性是指定具體資料為名稱及位置,|DataDirectory| 對應ASP.NET網站中的系統目錄App_Data,本屬性值說明串連到本目錄中的名為Movies.mdf資料庫,其中,mdf檔案名稱說明該資料庫需要SQL Server伺服器的服務,但它本身是一個獨立的資料庫檔案,可以進行複製粘貼而不需要在SQL Server管理系統(如SSMS)進行資料庫分離工作;
Integrated Security=True" 說明是整合驗證,是Windows驗證的方式,只要有這個屬性及屬性值,連接字串中就不需要使用者名稱及密碼;
providerName ="System.Data.SqlClient"為資料提供者
這種情況是本地開發最常用的情況:可以直接使用ASP.NET建立資料庫(副檔名即為.mdf),也可以使用ASP.NET網站配置產生ASPNETDB.MDF資料庫,當資料庫建立完成後,在ASP.NET介面中建立連接字串,只需要提供連接字串的名稱,連接字串的其它屬性及屬性值可以自動在web.config檔案中產生。
第二種情況,本地開發時,使用下面的連接字串:複製代碼 代碼如下:<connectionStrings>
<add name="myConn" connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
說明:這裡的connectionString屬性比第一種情況簡單,注意這裡的資料庫副檔名 .sdf,這是MS SQL Compact版本的資料庫,它不需要開啟SQL Server的服務即可使用,精緻小巧,便於使用,但支援性不如.mdf(這個是MS SQL Server標準版檔案格式)。因此,在正常的PC機進行開發時,建議使用.mdf檔案,如果在機器上沒有MS SQL Server服務運行時,.sdf是一個不錯的選擇。
第三種情況,本地開發時,使用下面代碼:複製代碼 代碼如下:<connectionStrings
<add name="DefaultConnection"
connectionString ="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-
2012213181139;Integrated Security=true" providerName ="System.Data.SqlClient" />
</connectionStrings>
說明:這裡的資料庫名沒有副檔名,說明是由MS SQL Server直接管理的資料庫,不是獨立的資料庫檔案(即:如果想複製該資料庫,需要在SQL Server管理工具中分離這個資料庫)。這種串連往往是使用SQL Server建立資料庫,再用ASP.NET建立串連,本地開發時,用的不是很常見。
第四種情況,遠程部署時,可以看到下面的代碼:複製代碼 代碼如下:<connectionStrings>
<add name="myConn" connectionString="Data Source=伺服器名;Initial Catalog=資料庫名;uid=使用者Id;pwd=使用者密碼;"/>
</connectionStrings>
說明:當需要把本地開發完成的ASP.NET網站部署到遠程空間(比如租用空間、比如自己的伺服器),開始實際提供網站訪問服務時,則使用這種連接字串。如果是租用空間,空間供應商會提供伺服器名稱,資料庫名稱,使用者名稱及口令。注意這裡沒有了Integrated Security=true"屬性名稱及屬性值,所以需要使用者名稱與密碼。
因此,當在使用連接字串進行本地開發(往往是本文中第一種方式)完成並測試成功後,需要根據遠程伺服器的資料,對連接字串進行修改再上傳至遠程伺服器,才能提供真正的Internet訪問。