2013-02-28 55 views
5

我運行下面的代碼從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連接。

+1

不是那個語句返回一個標量而不是數據表? – hcb 2013-02-28 07:46:15

+0

con.open()後發生錯誤 – Freelancer 2013-02-28 07:55:46

回答

1

這可能是連接字符串中的錯誤的結果。你應該嘗試添加

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以獲取更多信息

3

我打開與該連接時也有類似的問題下面的連接字符串:

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

固定的問題在連接字符串中更改Integrated Security=TrueIntegrated Security=SSPI

1

用於連接到MS Access數據庫類似的問題,對於一個錯誤的密碼噴氣OLEDB的連接屬性設置生成此確切的錯誤:數據庫密碼=

1

我有同樣的問題,但發現是密碼中使用的特殊字符。

於是,我改變了訪問文件的密碼,並更換的Jet OLEDB:數據庫密碼=與更新之一,它解決了這個問題。

相關問題