1. ホーム
  2. cp

System.InvalidOperationException: ConnectionString プロパティが初期化されていません。

2022-02-16 20:37:12
<パス

C#でOleDBを使用してACCESSを操作する。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NewFileName + ";User Id=uid;Jet OLEDB:Database Password=pwd; " となります。

エラーメッセージの全文です。
{System.InvalidOperationException: ConnectionStringプロパティが初期化されていません。
システム内のOleDbConnection.PermissionDemand()を使用します。
OleDbConnectionFactory.PermissionDemand(DbConnectionのouterConnection)
DbConnectionClosed.OpenConnection(DbConnectionのouterConnection、DbConnectionFactoryのconnectionFactory)
システムでOleDbConnection.Open()を実行します。
DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

GetDataTable(String Sql) location PublicDB.cs:row number 44 in Public.DB.
DBUpgrade1() 場所 Program.cs:Line 348
In Program.Main() location Program.cs:line number 738}.

エラーの原因
ConnectionStringプロパティが初期化されていません。Connection オブジェクトのみが作成され、Connection オブジェクトの ConnectionString プロパティは設定されていません。

解決策
ConnectionオブジェクトのConnectionStringプロパティを、例えば以下のコードで設定します。

 ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "Here is the path to your ACCESS database file" + ";User Id =uid;Jet OLEDB:Database Password=pwd;";

データベースにパスワードがない場合は、後ろに "User Id=uid;Jet OLEDB:Database Password=pwd;" を追加する必要はありません。