2010-11-27 41 views
3

我是桌面應用程序開發新手,目前正在使用分層體系結構(用戶界面,DAL,BLL)構建桌面應用程序。哪裏可以在桌面應用程序中存儲類庫的連接字符串?我可以在app.config中使用嗎?

在web開發中,我用來在web.config中存儲連接字符串,我的類庫從那裏訪問它。請指導我如何在桌面應用程序中將DAL存儲連接字符串的位置&。我嘗試添加一個app.config文件在我的類庫和訪問連接字符串是這樣的:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString) 

但throuws一個錯誤:「對象引用不設置到對象的實例」

請在此指導我。感謝您的支持和分享。

+1

是的,您可以使用:http://stackoverflow.com/questions/4256809/can-we-declare-variables-in-app-config-file – 2010-11-27 11:01:04

回答

3

是的,在桌面應用程序中,所有配置都應該位於該應用程序的app.config中。此桌面應用程序使用的類庫默認從該app.config獲取它們的配置。

如果該行拋出異常:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString 

那麼它很可能是因爲沒有<connectionStrings>條目名稱「的ConnectionString」的存在。檢查空:

if(ConfigurationManager.ConnectionStrings["connectionstring"] != null) 
{ 
    string connStr = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString; 
} 
4

它應該存儲在Windows應用程序的app.config中,而不是類庫。基本上,當您運行可執行文件時,應該有一個名爲Foo.exe.config(其中Foo.exe是Windows應用程序的結果可執行文件)的文件在包含設置的相同文件夾中。

因此,在Visual Studio中,只需將一個app.config文件添加到WinForms應用程序項目並將設置存儲在那裏。在這種情況下,它們將被您的自定義庫成功讀取。不需要將app.config文件添加到您的類庫項目中,因爲它永遠不會被使用。

2

將存儲在app.config文件,併爲你的web應用程序你可以訪問連接字符串:一個應用程序

if(ConfigurationManager.ConnectionStrings["connectionstringName"] != null) 
{ 
     string connectionString = ConfigurationManager.ConnectionStrings["connectionstringName"].ConnectionString; 
} 
0

任何配置設置是否應用程序設置或連接字符串應該放在應用程序的app.config文件中。如果你的桌面應用程序,你可以添加一個「應用程序配置」文件或「app.config」並將連接字符串放在那裏。該應用程序的任何依賴關係。像DAL這樣的類庫將從應用程序的* .config文件中獲取其連接字符串所需的值。

0

您可以使用app.config或其他方式使用簡單的文本文件提及連接字符串。

//// Read connection string from the text file 
StreamReader sr = new StreamReader(System.Windows.Forms.Application.StartupPath @"C:\ConnectionString.txt"); 
connStr = sr.ReadLine(); 
相關問題