1

我有个问题。我正在尝试通过

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

但它一直失败:

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

我用调试器检查,这是connectionStr

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

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

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:不支持关键字:“提供者”

无计可施;

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

对每个人-谢谢你,问题是(我忘了)当你使用 Access 数据库时,你必须使用OleDbCommand而不是SqlCommand. 谢谢你现在一切正常!– 马库斯刚刚编辑

4

2 回答 2

1

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

<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
于 2015-01-09T20:44:57.020 回答
1

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

如果

ConfigurationManager.ConnectionStrings["PlacementConnectionString"]

不返回任何东西——调用

.ConnectionString

将因您的错误而失败。你能验证一下吗

“放置连接字符串”

连接的正确名称是什么?

于 2012-05-09T19:45:43.733 回答