Hej! Är du säker på att användaren sa existerar? Som standard brukar man använda Admin i Access, det är det som finns från början. Hej Johan! Är databasen lösenordsskyddad? Då maste du ange Workgroupfilen också för att få åtkomst. Hej Micke! Har försökt att reproducera ditt fel, men allt fungerar för mig. Det verkar dock som om du har någon Accessdatabas med lösenordsskydd, kanske inte den du nu jobbar med. Kan du öppna databasen på en annan maskin? Hej! Ett skott från höften: Hej johan! Nej det var inget vidare råd när jag tittar lite närmare... ledsen för det!ADO.net - felmeddelande vid skapande av oledbConnection
Jag har precis börjat använda .net, vilket fungerar fin-fint!
Har dock ett problem som jag inte vet beror på om jag har något fel i min konfiguration eller om jag gör fel.
Jag vill skapa en oledb-connection till en access-databas.
Jag väljer Microsoft Jet 4.0 OLE DB Provider som provider.
Jag pekar ut min accessdatabas och väljer "sa" som användarnamn och blankt lösenord.
När jag testar den kopplingen får jag felmeddelandet:
" Test connection failed because of an error in initializing provider. Cannot start your application. The workgroup information file is missing or opened by antother user."
Någon som känner igen felet och vet vad jag kan göra för att åtgärda?
Stort tack!
Mvh, SofiaSv: ADO.net - felmeddelande vid skapande av oledbConnection
/JohanSv: ADO.net - felmeddelande vid skapande av oledbConnection
Du har helt rätt - har provat så många olika vägar nu att jag blir alldeles snurrig. "sa" var det senaste tipset jag fick från någon att prova.
Hur som helst - om jag istället kör admin (som var det jag körde från början) och blankt så får jag OK på test connection och kan gå vidare men efter att i query buildern ha angett vad som ska med i data providern får jag istället felet " Format of the initialization string does not conform to OLE DB specifikation..."
När jag trycker OK så får jag upp en inloggningsruta (data source login) med Admin som default användare. Men kommer inte vidare trots att det står Admin - blankt i fälten.
Jag har provat detta på flera olika databaser, både gamla och helt nyskapade med enbart testdata i.
Om jag istället anävnder mig av en odbc-koppling mot en utpekad accessdatabas så får jag i slutet, när den testar kopplingen fel på försöket vid UPDATE samt DELETE. Där står "Could not determine which columns uniquely identify the rows for "Instructors".", vilket inte alls stämmer då tabellen har en unik (självklart), indexerad nyckel.
Om jag nonchalerar detta så kommer dessa fel tillbaka när jag senare försöker uppdatera databasen med t.ex. borttagna rader från datasetet.
*SUCK*, vad gör jag för fel??? Tycker jag följer varenda hjälp och manual och online-kurs som finns tillgänglig!
Skumt!!
/SofiaSv: ADO.net - felmeddelande vid skapande av oledbConnection
/mickeSv: ADO.net - felmeddelande vid skapande av oledbConnection
Databasen är inte lösenordsskyddad. Bara att knacka på och gå in! :-)
/LisaSv: ADO.net - felmeddelande vid skapande av oledbConnection
Kan du skicka connectionString strängen så vi får se hur den ser ut...
MvhSv: ADO.net - felmeddelande vid skapande av oledbConnection
Du kanske bara har en Workgroupfil som inte är Access standard, men inget lösen ändå?
Du har alltså fått en annan databas lösenordsfil?
/mickeSv: ADO.net - felmeddelande vid skapande av oledbConnection
Ok, det är två situationer - ett felmeddelade vid användande av en OLEDBConnection, kommer nedan;
Här kommer ConnectionStringen från min oleDBConnection (skapad m.h.a. wizarden);
"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source="C:\.NET kurs\test db.mdb";Jet OLEDB:Engine Type=5;Provider="Microsoft.Jet.OLEDB.4.0";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode="ReadWrite|Share Deny None";Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1"
Denna generar inga fel i sig utan det är när jag ska skapa en data adapter av denna connection som felmeddelandet "The connection could not be opened because of the following error: Format of the initialization string does not conform to the OLE db speciafication."
Och sen efter OK-klicket så kommer inloggningsrutan upp med Admin som default i username-fältet.
Och ett felmeddelande när man istället skapar en ODBC-Connection mot samma accessdatabas.
Då får jag på sista sidan i wizarden när den testar SELECT, INSERT, UPDATE och DELETE meddelandet
"Could not determine which columns uniquely identify the rows for "Name"." när den har testat UPDATE och DELETE. SELECT och INSERT går bra.
Connectionstringen till ODBC-kopplingen ser ut enligt nedan;
"PageTimeout=5;MaxScanRows=8;DefaultDir=C:\.NET kurs;FILEDSN=C:\.NET kurs\test db.mdb.dsn;DriverId=25;DBQ=C:\.NET kurs\test db.mdb;UserCommitSync=Yes;FIL=MS Access;UID=admin;Driver={Driver do Microsoft Access (*.mdb)};MaxBufferSize=2048;Threads=3;SafeTransactions=0"
Hoppas ni blir klokare än jag.... :-)
Mvh,
SOfiaSv: ADO.net - felmeddelande vid skapande av oledbConnection
I din connectionstring hänvisar du till din access fil med en path som innehåller mellanslag, då brukar det vara vanligt att citationstecken används, annars förstörs sökvägen...
Alltså:
"PageTimeout=5;MaxScanRows=8;DefaultDir=C:\.NET kurs;FILEDSN=C:\.NET kurs\test db.mdb.dsn;DriverId=25;DBQ='C:\.NET kurs\test db.mdb';UserCommitSync=Yes;FIL=MS Access;UID=admin;Driver={Driver do Microsoft Access (*.mdb)};MaxBufferSize=2048;Threads=3;SafeTransactions=0"
Men det är bara en snabb fundering, jag har inte testat!
MvhSv: ADO.net - felmeddelande vid skapande av oledbConnection
Det hjälpte dessvärre inte att sätta strängen inom ''.
Mvh,
SofiaSv: ADO.net - felmeddelande vid skapande av oledbConnection
Jag har också testat att ta följande connectionstring:
"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=C:\.NET kurs\test db.mdb;Jet OLEDB:Engine Type=5;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=ReadWrite|Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
Och sedan generera en dataAdapter som fyller upp ett DataSet, fungerar klockrent!
Mycket trist att jag inte kan återskapa ditt problem!
Mvh