多步骤OLE DB操作产生错误。检查每个OLE DB状态值(如果可用)。没有工作已完成
问题描述:
我运行下面的代码从try块的第一个语句多步骤OLE DB操作产生错误。检查每个OLE DB状态值(如果可用)。没有工作已完成
/*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();
}
我把调试器,并找到当我试图打开连接的错误正在添加的。 错误文本:
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
连接字符串是:
“供应商= Microsoft.Jet.OLEDB.4.0;数据源= E:\的NewSoft \数据库\ TestApp.accdb;集成 安全性= SSPI “
我正在使用oledb连接。
答
这可能是连接字符串中的错误的结果。你应该尝试添加
Persist Security Info=True;
或者你可能在你的OLE DB提供程序,它必须具有OLEDB_SERVICES记录你的注册表问题。在根据HKEY_CLASSES_ROOT \ CLSID注册表,找到OLE DB提供程序的CLSID,并添加以下注册表值:
Value Name: OLEDB_SERVICES
Data Type: REG_DWORD
Value: 0xFFFFFFFF
答
我打开与该连接时也有类似的问题下面的连接字符串:
Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=True
固定的问题在连接字符串中更改Integrated Security=True
到Integrated Security=SSPI
。
答
用于连接到MS Access数据库类似的问题,对于一个错误的密码喷气OLEDB的连接属性设置生成此确切的错误:数据库密码=
答
我有同样的问题,但发现是密码中使用的特殊字符。
于是,我改变了访问文件的密码,并更换的Jet OLEDB:数据库密码=与更新之一,它解决了这个问题。
不是那个语句返回一个标量而不是数据表? – hcb 2013-02-28 07:46:15
con.open()后发生错误 – Freelancer 2013-02-28 07:55:46