7

私は次のコードを実行しています

/*Fetchinch Last CustID from custMaster*/
int ID = 0;
try
{
     con.Open();
     da = new OleDbDataAdapter("select max(Id) from custMaster",con);
     DataSet ds = new DataSet();
     da.Fill(ds);
     for(int i=0;i<ds.Tables[0].Rows.Count;i++)
        ID=int.Parse(ds.Tables[0].Rows[i][0].ToString());
     con.Close();
}
catch (Exception ex) {}
finally 
{
     con.Close();
}

tryブロックの最初のステートメントからデバッガーを配置していますが、接続を開こうとするとエラーが発生していることがわかります。エラーテキスト:

複数ステップのOLEDB操作でエラーが発生しました。可能な場合は、各OLEDBステータス値を確認します。作業は行われませんでした。

接続文字列は次のとおりです。

"Provider = Microsoft.Jet.OLEDB.4.0; DataSource = E:\ NewSoft \ Database \ TestApp.accdb; Integrated Security = SSPI"

oledb接続を使用しています。

4

4 に答える 4

2

これは、接続文字列のエラーの結果である可能性があります。追加してみてください

Persist Security Info=True;

または、OLEDB_SERVICES レコードが必要な OLE DB プロバイダーのレジストリに問題がある可能性があります。HKEY_CLASSES_ROOT\CLSID の下のレジストリで、OLE DB プロバイダーの CLSID を見つけて、次のレジストリ値を追加します。

Value Name: OLEDB_SERVICES
Data Type: REG_DWORD
Value: 0xFFFFFFFF

詳細については、 http://support.microsoft.com/kb/269495を参照してください。

于 2013-02-28T07:39:39.513 に答える
1

MS Access データベースに接続する同様の問題については、Jet OLEDB:Database Password=の接続属性に間違ったパスワードが設定されているために、この正確なエラーが生成されました。

于 2013-08-16T06:34:02.540 に答える