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 块的第一条语句中放入调试器,并在尝试打开连接时发现错误即将到来。错误文本:

多步 OLE DB 操作产生错误。检查每个 OLE DB 状态值(如果可用)。没有做任何工作。

连接字符串是:

“提供者=Microsoft.Jet.OLEDB.4.0;数据源=E:\NewSoft\Database\TestApp.accdb;集成安全=SSPI”

我正在使用 oledb 连接。

4

4 回答 4

3

打开具有以下连接字符串的连接时,我遇到了类似的问题:

Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=True

在连接字符串中更改Integrated Security=True为解决了问题。Integrated Security=SSPI

于 2013-07-24T20:06:39.843 回答
2

这可能是连接字符串中的错误的结果。你应该尝试添加

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

有关详细信息,请参阅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 回答
1

我遇到了同样的问题,但发现是密码中使用的特殊字符。

因此,我更改了 Access 文件密码并将Jet OLEDB:Database Password=替换为更新后的密码,它解决了问题。

于 2017-03-31T13:44:17.977 回答