2013-02-17 136 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

相关问题