2009-06-12 112 views

回答

5

在這種情況下,我會創建一個從System.Web.UI.Page派生的'Base Page'。在這個頁面上,你可以創建一個名爲'ConnectionString'的屬性。您將擁有您創建的所有網頁都從此頁面繼承。

例子:

public partial class BasePage : System.Web.UI.Page 
{ 
    protected string ConnectionString 
    { 
     get 
     { 
      return System.Configuration.ConfigurationSettings.AppSettings["MyConnectionString"]; 
     } 
    } 

} 

而且在你的web.config

<appSettings> 
     <!-- Connection String --> 
     <add key="ConnectionString" value="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"/> 
</appSettings> 

現在你可以有,很容易讀取的連接字符串web.config文件。你可以將這個'Base Page'存儲在你的類庫中,沒問題。只要您的網頁繼承它正在使用帶連接字符串的web.config文件。

之後,使用該字符串進行連接是一件簡單的事情。你可以通過多種方式做到這一點,無論是在你的網頁,或在單獨的課程(我建議分開的課程)。在這種情況下,如果你有一個單獨的類,你就需要在ConnectionString屬性傳遞給你的連接功能:

public void ExecuteQuery(string connectionString, string sql) 
     { 
      using (System.Data.SqlClient.SqlConnection theConnection = new System.Data.SqlClient.SqlConnection(connectionString)) 
      using (System.Data.SqlClient.SqlCommand theCommand = new System.Data.SqlClient.SqlCommand(sql, theConnection)) 
      { 
       theConnection.Open(); 
       theCommand.CommandType = CommandType.Text; 
       theCommand.ExecuteNonQuery(); 
      } 
     } 

,或者你可以創建一個不帶連接字符串參數的功能,只是讀來自web.config文件。這聽起來像你可能想要將連接和數據訪問代碼放在類庫中,以實現數據和內容的良好分離。希望這可以幫助!

0

System.Data命名空間。如果使用SQL Server,則爲SQLConnection對象。

我使用應用程序數據塊進行數據訪問b/c我認爲這是一個節省時間。該框架非常適合SQL Server訪問。

0

您的圖書館是否會從一個ASP.net網站被調用?如果是這樣,您仍然可以使用相同的方法來訪問應用程序設置。否則,你可能需要某種app.config,無論你在這個前端做什麼。

0

另外,在大多數類庫中,您不需要在配置中進行連接,除非您使用的ORM需要使用它來獲取某些信息。調用應用程序的配置將在你運行這個東西的時候被使用,所以它會從web.config或其他東西中取出配置。

1

有幾種方法來解決這個問題:

1)如果你是類庫是真的要生成網頁,那麼它可能會被部署在web.config中的服務器上,因此可以使用web.config文件的屬性。如果您不想使用ConnectionString部分,那麼您可以使用連接字符串進行appSetting。

這樣做的好處是,對於不同的環境(測試,部署等),很容易更改或使用不同的連接字符串。如果您決定在另一種應用中使用類庫,則可以使用具有相同設置的app.config文件。

根據數據庫的類型,您將使用System.Data以及可能的一些子命名空間來實現此功能。

2)您可以將連接字符串硬編碼到代碼中。醜陋,但可以在一個捏。

3)你可以使用一個實體框架來幫助你並減少你必須做的工作。

相關問題