多步OLE DB操作生成错误.检查每个OLE DB状态值(如果可用).没有工作

Fre*_*cer 7 .net c# oledb

我正在运行以下代码

/*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();
}
Run Code Online (Sandbox Code Playgroud)

我从try块的第一个语句中调试调试器,并在我尝试打开连接时发现错误即将发生.错误文字:

多步OLE DB操作生成错误.检查每个OLE DB状态值(如果可用).没有工作.

连接字符串是:

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

我正在使用oledb连接.

Ale*_*lex 3

这可能是由于连接字符串中的错误造成的。你应该尝试添加

Persist Security Info=True;
Run Code Online (Sandbox Code Playgroud)

或者您的 OLE DB 提供程序的注册表可能存在问题,该提供程序必须具有 OLEDB_SERVICES 记录。在 HKEY_CLASSES_ROOT\CLSID 下的注册表中,找到 OLE DB 提供程序的 CLSID 并添加以下注册表值:

Value Name: OLEDB_SERVICES
Data Type: REG_DWORD
Value: 0xFFFFFFFF
Run Code Online (Sandbox Code Playgroud)

请参阅http://support.microsoft.com/kb/269495了解更多信息