【发布时间】:2015-04-30 03:27:38
【问题描述】:
我的连接字符串存储在 App.Config 中
<connectionStrings>
<clear />
<add name="CTaC_Information_System.Properties.Settings.CIS_beConn"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="\\server\file\CIS Data\Database\CIS_be.accdb"e;;Jet OLEDB:Database Password=123"
providerName="System.Data.OleDb" />
然后,当我转到 main.xaml.cs 时,我输入以下内容:
string cisconn = ConfigurationManager.ConnectionStrings["CTaC_Information_System.Properties.Settings.CIS_beConn"].ConnectionString;`
我在搜索时在 Stack Overflow 上找到了该答案,但有人说要输入 var,但当我输入 var 时,它无法识别它,所以我使用了 string 方法。
当我输入cisconn.Open(); 时,该选项不存在。我引用 System.Configuartion;,System.Data.Sql; System.Data.SqlClient; 和 System.Data.OleDb;。
有人可以告诉我如何从 c# 连接到数据库吗?我正在尝试在我的应用程序运行时测试连接,但我无法弄清楚。
【问题讨论】:
-
我认为您不应该在字符串中使用 "(或 "e,这是不正确的)。应该只是“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\server\file\CIS Data\Database\CIS_be.accdb;Jet OLEDB:Database;Password=123”加上看起来你错过了一个分号在密码字段之前。
-
当我添加到数据库的连接时,这部分代码是由 Visual Studio 创建的——我没有手动输入。虽然我在问题中写它时可能错过了一点打字。这就是为什么我不知道为什么我不能做
cisconn.Open(); -
哦!哈,是的,我错过了。连接字符串只是一个连接字符串,你仍然需要使用
OleDbConnection来创建它,比如OleDbConnection conn = new OleDbConnection(cisconn);然后你可以做conn.Open() -
我也是这么想的,但是当我这样做时,在 cisconn 下出现了一个错误,说明了这一点:
A field initializer cannot reference the non-static field, method or property 'CTaC_Information_System.StartMenu.cisconn'我不知道该怎么做。 -
那是一个与连接字符串中的完全不同的字符串,因此该错误必须来自其他地方,但除非您发布代码,否则我不知道在哪里(编辑您的问题) .
标签: c# sql wpf ms-access database-connection