2013-02-17 171 views
2

在我的windows窗體我有連接字符串中的app.config爲App.Config中連接字符串

<configuration> 
    <configSections> 
    </configSections> 
    <connectionStrings> 
     <add name="Database" 
      connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database.accdb" 
      providerName="System.Data.OleDb" /> 
    </connectionStrings> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

而且在所有類我使用下面的代碼來連接到數據庫。

string connString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString; 

但它沒有連接到數據庫。

有人可以指出錯誤。

但是,當我不使用的app.config中使用此代碼,它工作正常。

string connString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = C:\\Users\\Amrit\\Desktop\\Database.accdb; Persist Security Info = False;"; 

我怎樣才能使在app.config連接字符串的工作..

+2

你是什麼意思「但它沒有連接到數據庫」?你如何創建數據庫連接? – nemesv 2013-02-17 07:31:34

+1

請將您的代碼放在與數據庫建立連接的地方。 – Igoy 2013-02-17 07:32:06

+0

請看看編輯。 – 2013-02-17 07:37:05

回答

0

它接縫(從評論)你是在這兩個連接字符串瞄準的兩個差異數據庫文件。第一個位於項目的App_Data文件夾中,第二個位於桌面上。

每次在VS中啓動項目時,將App_Data文件夾中的文件複製到輸出文件夾(對於WinForms項目爲bin/Debugbin/Release)。它會覆蓋文件的以前的內容,因此每次在輸出文件夾中有一個新的文件副本形成App_Data文件夾。爲了找出答案,運行該程序並執行一些插入操作。然後關閉程序並在輸出文件夾中打開數據庫文件(不在項目App_Data中)。

這是因爲你的數據庫文件的Copy to Output Directory屬性設置爲Copy always

+0

當我開始在應用程序上工作時,我在桌面上使用了數據庫,但現在我想使用應用程序文件夾中的數據庫,以便我可以創建可安裝的安裝文件。 – 2013-02-17 07:52:00

+0

@AmritSharma你說,從app.config連接字符串連接到數據庫,但deos不插入數據庫。你檢查了哪個文件?你是否在App_Data文件夾中打開文件? – 2013-02-17 08:25:50

+0

我剛剛意識到,應用程序能夠從數據庫中檢索數據但無法寫入。該數據庫位於項目文件夾的根目錄中。我怎樣才能解決這個問題 – 2013-02-17 08:26:26

0

你可以做,所以

<configuration> 
<appSettings> 
    <add key="ApplicationTitle" value="Sample Console Application" /> 
    <add key="ConnectionString" 
     value="Server=localhost;Database=Northwind;Integrated 
       Security=false;User Id=sa;Password=;" /> 
</appSettings> 

然後用ConfigurationSettings.AppSettings["ConnectionString"];

+0

爲什麼不使用內置的連接字符串功能? – 2013-02-17 08:05:05

+0

依賴於.NET Framework使用..此答案的目標.net2及以上,但在.net 3.5及以上的 Mido 2013-02-17 08:10:24

+0

閱讀問題;正在使用的版本顯然有它。如果沒有,程序就不會編譯,你不同意嗎? – 2013-02-17 08:11:33

相關問題