1

私は問題があります。接続文字列を抽出しようとしています

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

しかし、それは失敗し続けます:

オブジェクト Ref がオブジェクトのインスタンスに設定されていません

デバッガーで確認すると、これが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: キーワードがサポートされていません: 'provider'

知恵の終わりに。

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

皆さんへ - ありがとうございました (私は忘れていました) 問題は、Access データベースを使用するときOleDbCommandでしSqlCommandた。ありがとう、すべてが正常に動作するようになりました! – マーカスは今編集

4

2 に答える 2

1

投稿したコードから離れると、私が見ることができる唯一の説明は、取得しているnull参照は、渡した文字列によって何も取得されていない構成マネージャーに関連しているということです。

もしも

ConfigurationManager.ConnectionStrings["PlacementConnectionString"]

何も返さない-呼び出し

.ConnectionString

エラーで失敗します。あなたはそれを確認できますか

"PlacementConnectionString"

接続の正しい名前は何ですか?

于 2012-05-09T19:45:43.733 に答える
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 に答える