在我的windows窗体中,我在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连接字符串工作..
3条答案
按热度按时间xqkwcwgp1#
你可以这样做
然后使用
ConfigurationSettings.AppSettings["ConnectionString"];
mwngjboj2#
从注解中可以看出,您在这两个连接字符串中定位了两个不同的数据库文件,第一个位于项目的
App_Data
文件夹中,第二个位于桌面上。App_Data
文件夹中的文件将复制到输出文件夹中(bin/Debug
或bin/Release
对于WinForms项目)。它会覆盖文件的先前内容,因此每次您在输出文件夹中的App_Data
文件夹中有一个新的文件副本时。运行程序并执行一些插入操作。然后关闭程序并在输出文件夹中打开数据库文件(不在项目App_Data
中)。发生这种情况是因为您将数据库文件的
Copy to Output Directory
属性设置为Copy always
。ipakzgxi3#
您需要设置数据目录。
然后可以在Global.ascx.cs的Application_Start中设置路径
https://stackoverflow.com/a/1409378/2745294
https://stackoverflow.com/a/6708279/2745294
希望这个有用。