C# App.Config连接字符串
在我的windows窗体中,app.config中的连接字符串为C# App.Config连接字符串,c#,winforms,database-connection,connection-string,C#,Winforms,Database Connection,Connection String,在我的windows窗体中,app.config中的连接字符串为 <configuration> <configSections> </configSections> <connectionStrings> <add name="Database" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|D
<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连接字符串正常工作。它(从注释中)确认您的目标是这两个连接字符串中的两个不同的数据库文件。第一个位于项目的App\u Data
文件夹中,第二个位于桌面上
App\u Data
文件夹中的文件将复制到输出文件夹中(bin/Debug
或bin/Release
,用于WinForms项目)每次在VS中启动项目时,它都会覆盖文件以前的内容,因此每次从输出文件夹中的App_Data
文件夹中获得文件的新副本时。要找到答案,请运行程序并执行一些插入。然后关闭程序并打开输出文件夹中的数据库文件(不在项目App\u Data
中)
这是因为您已将数据库文件的复制到输出目录
属性设置为始终复制
您可以这样做
<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”]代码>您需要设置DataDirectory
然后,您可以在Global.ascx.cs中的应用程序_Start中设置路径
AppDomain.CurrentDomain.SetData("DataDirectory", "C:\Users\Amrit\Desktop");
希望这有帮助。你说的“但它没有连接到数据库”是什么意思?如何创建数据库连接?请将代码放在与数据库连接的位置。请查看编辑。您的两个连接字符串不同:一个是数据源=| DataDirectory | \ database.accdb
,另一个是数据源=C:\\Users\\Amrit\\Desktop\\database.accdb
。为什么你希望两者都能起作用?只需在配置中使用“工作”一个连接字符串=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=C:\Users\Amrit\Desktop\Database.accdb”
,它应该可以正常工作。我不会同时使用这两个连接字符串。我想使用app.config的连接字符串,因为该应用程序将安装在各种系统中。当我开始使用该应用程序时,我使用了桌面上的数据库,但现在我想使用应用程序文件夹中的数据库,以便创建可安装的安装文件。@AmritSharma,您说过app.config中的连接字符串连接到数据库,但DEO没有将其插入数据库。你查了哪个文件?你打开了App\u Data
文件夹中的文件了吗?我刚刚意识到,应用程序可以从数据库中检索数据,但不能写入。数据库位于项目文件夹的根目录中。我怎样才能解决这个问题你说的“不会写”是什么意思?请具体说明发生了什么。命令不可能成功执行(没有错误),但什么也没有发生。在我的应用程序中,有一个combox,它从数据库中填充它的项。它可以很容易地填充数据库。此外,我在应用程序中具有搜索功能,它还可以搜索我要求它搜索的内容。但当我尝试添加用户和产品时,它不会这样做,但不会出现错误。但当我对桌面上的数据库做同样的操作时,它就很好了。我认为问题可能出在项目文件夹的只读属性上。为什么不使用内置的连接字符串功能?取决于使用的.NET
框架。。此答案针对.net2及以上版本,但在.NET3.5及以上版本中阅读此问题;正在使用的版本清楚地说明了这一点。如果没有,程序就不会编译,你同意吗?是的,对。。但我认为它是关于配置文件的可读性的,两者都可以工作,很好