配置管理器连接字符串问题

8
我正在尝试从Microsoft Access数据库文件中提取数据,以填充几个文本框。(所有文本框都是用XAML完成的。) 我相当确定我缺少了什么,因为无法访问数据库文件。
这是我的代码:
    DataTable tblVFWPostManagers = new DataTable();
    string connString2 = ConfigurationManager.ConnectionStrings**/*["\\Documents\DatabaseFile.accdb"]*/**.ConnectionString;
    string query2 = @"SELECT Manager ID, Manager FName, Manager LName, Manager Address, Manager City, Manager State, Manager Zip Code,
            Manager Home Phone Number, Manager Cell Phone Number, Manager Email FROM tblVFWPostManagers";

        //Fill the VFWPostManagers Set with the data
        using (SqlConnection conn2 = new SqlConnection(connString2))
        {
            SqlDataAdapter da2 = new SqlDataAdapter(query2, conn2);
            da2.Fill(tblVFWPostManagers);
        }

注意:我确定加粗部分是不正确的。但是,我真的不确定括号中应该放什么。一开始我以为那是文件路径所在的位置。当我将那部分注释掉后,错误就消失了。
如何使用上述方法从数据库中提取数据?我缺少了什么?

请显示您的 app.config 或 web.config 中 ConnectionString 部分的内容。 - Steve
你应该发布你的 app.config 文件。 - Jonesopolis
方括号(索引器)中放置的是您在app.config中连接字符串的名称。 ConfigurationManager.ConnectionStrings [“ MyConnString”] .ConnectionString。app.config文件中将包含 <add name="MyConnString" connectionString="whatever"/> - Dave Zych
2个回答

13

您的代码中有几个错误:

ConfigurationManager.ConnectionStrings 引用了您应用程序配置文件中存储访问一个或多个数据库信息的特定部分。该部分包含类似以下行的内容:

  <connectionStrings>
            <add name="MyDataBase" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;
                                   Data Source=C:\myFolder\myAccess2007file.accdb;
                                   Persist Security Info=False"/>
  </connectionStrings>

(要创建一个适用于您的应用程序的有效连接字符串,请查看www.connectionstrings.com
因此,您的代码使用“名称”键引用这些部分声音。

string connString2 = ConfigurationManager.ConnectionStrings["MyDataBase"].ConnectionString;

现在您的查询文本将失败,因为您广泛使用带有空格的列名。在这种情况下,每个列名都应该用方括号括起来。

string query2 = @"SELECT [Manager ID], [Manager FName], [Manager LName], .....

我认为那正是我所需要的。谢谢。愚蠢的问题: <ConnectionStrings> 部分会在我的 XAML 代码中的某个地方吗? - Samuel Brockmann
你的应用程序的连接字符串以及其他配置信息存储在一个名为app.config的特定XML文件中,当你将其添加到你的项目中时。在运行时,它将被复制到与你的应用程序同一文件夹中,并以你的应用程序名称加上扩展名config的形式命名(请参阅应用程序配置文件)。 - Steve

4
在你的 app.config 或者 web.config 文件中,你会有一个 ConnectionStrings 部分:
<configuration>
    <connectionStrings>
        <add name="MyConnection" connectionString="..."/>
    </connectionStrings>
    ...
</configuration>

您可以在代码中访问它:

string connString2 = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接