2013-02-28 20 views
5

Używam następujący kodWielokrokowa operacja OLE DB wygenerowała błędy. Sprawdź każdą wartość statusu OLE DB, jeśli jest dostępna. Żadna praca została wykonana

/*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(); 
} 

kładę debuggera z pierwszego sprawozdania z bloku try i stwierdzeniu, że błąd nadchodzi, gdy próbuję otworzyć połączenie. Błąd Tekst:

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. 

String Connection to:

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

Używam połączeń oledb.

+1

Czy ta instrukcja nie zwraca wartości skalarnej zamiast datatable? – hcb

+0

Błąd pojawiający się po con.open() – Freelancer

Odpowiedz

1

Może to być wynikiem błędu w ciągu połączenia. Należy starać się, aby dodać

Persist Security Info=True; 

A może masz problemy w rejestrze z dostawcy OLE DB, który musi mieć OLEDB_SERVICES rekord. W kluczu rejestru HKEY_CLASSES_ROOT \ CLSID znajdź identyfikator CLSID dostawcy OLE DB i dodaj następującą wartość rejestru:

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

Zobacz http://support.microsoft.com/kb/269495 więcej informacji

3

miałem podobny problem podczas otwierania połączenia z następujący ciąg połączenia:

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

Zmiana Integrated Security=True do Integrated Security=SSPI w ciągu połączenia rozwiązaniu problemu.

1

Na podobny problem z połączeniem do bazy danych MS Access, dokładnie ten błąd został wygenerowany na niewłaściwym hasłem ustawionym w atrybucie przyłączeniowej Jet OLEDB: Database Password =

1

miałem ten sam problem, ale okazało się, być znakami specjalnymi używanymi w haśle.

Tak, zmieniłem hasło do pliku dostępu i zastąpiłem Jet OLEDB: Hasło bazy danych = ze zaktualizowanym i rozwiązało problem.

Powiązane problemy