从配置管理器中提取连接字符串

本文关键字:提取 连接 字符串 管理器 配置 配置管理 | 更新日期: 2023-09-27 18:33:36

>我有一个问题。我正在尝试通过以下方式提取连接字符串

sqlConnStr = new qlConnection(ConfigurationManager.ConnectionStrings["PlacementConnectionString"].ConnectionString);

但它一直失败:

对象引用未设置为对象的实例

我检查调试器,这是connectionStr的值

{Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|'Placement.accdb}

我已经通过VS2012的数据集向导导入了我的数据库,那么我做错了什么?

PS:我已经多次测试了连接。

<connectionStrings>
   <add name="_201103578_P09.Properties.Settings.PlacementConnectionString" 
        connectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|'Placement.accdb"
        providerName="System.Data.OleDb" />
</connectionStrings>

亲切问候

马库斯

[更新]

我从

sqlAdapter = new SqlDataAdapter();
try
{
    sqlConnStr = new SqlConnection(ConfigurationManager.ConnectionStrings["PlacementConnectionString"].ConnectionString);
}

sqlAdapter = new SqlDataAdapter();
string s = ConfigurationManager.ConnectionStrings[1].ConnectionString;
try
{
    sqlConnStr = new SqlConnection(s);
}

我检查 s 并且值为

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|''Placement.accdb

现在抛出一个错误

System.ArgumentException: 不支持关键字: 'provider'

在智慧的尽头;

===================================================================================================================================================================================================

==

给大家 - 谢谢 问题是(我忘记了(在使用 Access 数据库时,您必须使用 OleDbCommand 而不是SqlCommand。谢谢,现在一切正常!- 马库斯刚刚编辑

从配置管理器中提取连接字符串

离开您发布的代码,我可以看到的唯一解释是,您获得的空引用与配置管理器没有通过您传递的字符串获得任何内容有关。

如果

ConfigurationManager.ConnectionStrings["PlacementConnectionString"]

不返回任何内容 - 调用

.ConnectionString

将失败并显示您的错误。你能验证一下吗

"放置连接字符串">

连接的名称是否正确?

您的连接字符串名称不正确

<connectionStrings>
 <add name="_201103578_P09.Properties.Settings.PlacementConnectionString" 
    connectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|'Placement.accdb"
    providerName="System.Data.OleDb" />

相反,它应该是

<connectionStrings>
<add name="PlacementConnectionString" 
    connectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|'Placement.accdb"
    providerName="System.Data.OleDb" />

或者在你的代码中你应该寻找

ConfigurationManager.ConnectionStrings["_201103578_P09.Properties.Settings.PlacementConnectionString"].ConnectionString