我有兩個可執行文件訪問包含數據訪問層一個DLL對象 每個exe文件可以包含服務器上的信息和 數據庫名稱,連接字符串等傳遞連接字符串
我如何通過不同的配置配置信息到DAL對象?
很明顯,我可以通過配置串到DAL對象 我每次實例化一個時間,但似乎混亂和重複作爲DAL每類都需要屬性的配置字符串..
誰能告訴我有沒有更好的辦法?
我想知道是否有一種方法讓實例化的DAL對象從調用對象讀取一些屬性,而無需我明確地傳遞它們?
我有兩個可執行文件訪問包含數據訪問層一個DLL對象 每個exe文件可以包含服務器上的信息和 數據庫名稱,連接字符串等傳遞連接字符串
我如何通過不同的配置配置信息到DAL對象?
很明顯,我可以通過配置串到DAL對象 我每次實例化一個時間,但似乎混亂和重複作爲DAL每類都需要屬性的配置字符串..
誰能告訴我有沒有更好的辦法?
我想知道是否有一種方法讓實例化的DAL對象從調用對象讀取一些屬性,而無需我明確地傳遞它們?
如何讓所有DAL類從包含連接字符串屬性的基類派生?
在這種情況下,您可以在子構造函數調用上調用基的構造函數,然後該基構造函數將成爲加載連接字符串的單個位置。
如果您在兩個Exe的例如:「DBConnectionString」中使用相同的ConfigKey - 那麼構造器將只從配置文件「DBConnection」條目加載值 - 無論哪個exe調用dal和正確的連接值字符串將傳遞給它
執行將在下面的行... 對不起,使用類似C#的語法。我很多年前使用過VB。
class BaseDAL
{
protected String _connectionString;
BaseDAL()
{
_connectionString = ConfigurationManager.AppSettings("DBConnectionString")
}
....
}
class ChildDAL : BaseDal
{
ChildDAL():base()
{
....
}
}
也許我錯過了一些東西,但你可以把連接字符串放到App.config或Web.config中。
<appSettings>
<!-- This sets the server, the username, and the password to connect to the database -->
<add key="SqlConnectionString"
value="Data Source=servername;Database=dbname;User ID=username;Password=password;Charset=utf8;"
/>
</appSettings>
然後,在你的代碼只需在閱讀:
Shared connectionString As String = ConfigurationManager.AppSettings("SqlConnectionString")
你只需要每EXE我想一個App.config中。
如果你真的有一個不同的連接字符串的EXE運行的每個實例可以將它存儲在緩存中,但我不認爲這是你在做什麼。
編輯:我在我的例子中使用的連接字符串將連接到MySQL。顯然,連接字符串本身會因數據庫而異。
謝謝,但存儲和檢索配置字符串不是問題。 我想我想讓instanciated DAL對象能夠讀取配置字符串,而不必將每個對象明確地作爲屬性傳遞給它們。 – zebidy 2010-09-02 05:09:01
好吧我明白從基類繼承將刪除我需要在DAL類中的連接字符串屬性,這是很好的。 但我不知道你說什麼關於傳遞連接字符串從exe到DAL類,因爲他們instanciated。 您是否建議將它傳遞給每個DAL對象,因爲它是在構造函數中創建的? – zebidy 2010-09-02 05:05:57
@zebidy - 只編輯了代碼 - 請參閱BaseDAL的構造函數。它是具有查找連接字符串邏輯的單個位置。 DAL - 在實例化時 - 將能夠以這種方式獲取連接字符串。不需要傳遞任何東西。 – InSane 2010-09-02 05:19:37
這是非常棒的,非常感謝我正在尋找的指導。 – zebidy 2010-09-02 06:19:17