Avatar billede hulla Novice
28. april 2004 - 21:08 Der er 7 kommentarer og
1 løsning

Connectionproblemer til Access DB

Jeg har en windowsservice skrevet i C#, som tilgår en AccessDB.

Ved første test ser det ud til at virke fint, men laver jeg mange opdateringer efter hinanden får jeg fejl i forbindelsen til min Access DB.

Jeg tilgår DB sådan:

private void MdbUpdate( string sqlStr )
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();

System.Data.OleDb.OleDbCommand OleDbCommand1 = new System.Data.OleDb.OleDbCommand();

conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data source=C:\WINDOWS\system32\FileService\Temp.mdb";
           
OleDbCommand1.CommandText=sqlStr;                                   
OleDbCommand1.Connection = conn;
conn.Open();
OleDbCommand1.ExecuteNonQuery();
conn.Close();
}

og denne fejl fremkommer efter en del opdateringer:

System.Data.OleDb.OleDbException: Unspecified error

Kender I noget til det?

:o)
Avatar billede terry Ekspert
28. april 2004 - 21:11 #1
THis could be because you are not closing the connection after use.
Avatar billede terry Ekspert
28. april 2004 - 21:12 #2
It is VERY important that you open the connection, then carry out some database operation and close the connection again. If connections do noty get closed then Access will fail!
Avatar billede terry Ekspert
28. april 2004 - 21:16 #3
It does look as though it is OK from here. I'm not too familiar with .NET but where are you declaring OleDbCommand1 ?
Avatar billede terry Ekspert
28. april 2004 - 21:17 #4
Is it possible that OleDbCommand1.Connection also needs closing ?
Avatar billede nih Novice
28. april 2004 - 22:40 #5
Hvis du køre metoden i et loop ville jeg oprette og åbne og lukke din connection i loopet.

private void dinMetode() {
  con.open();
  for (int i = 0; i < 100) {
    private void MdbUpdate(sqlStr, con );
  }
  con.close
}

private void MdbUpdate( string sqlStr , connection con)
{
  .
  .
  .
  .
}

Noget i den stil.

Ellers kan det være din SQL string, men jeg synes .Net plejer at skrive mere om fejlen hvis det er sql'en

Niels
Avatar billede hulla Novice
29. april 2004 - 10:13 #6
Det er ikke i en løkke jeg gør det, men metoden kaldes fra mange forskellige metoder og samtidig bruger jeg samme connection i en Query metode,.

Kan man have flere connections eller hvordan ??
Avatar billede terry Ekspert
29. april 2004 - 15:05 #7
Yes you can have more than one connection, but at some stage Access will fail if too many connections are open. Normally Access can have a theoretical max. of 255 users connecterd at one time. In practice this is far less! So, it is always best to close the connection as soon as you are finished using it. I can see you close the conn connection but where is OleDbCommand1 declared? If you are isng this for more than one operation then I can only guess that itis going to fail!
Avatar billede terry Ekspert
04. maj 2004 - 20:45 #8
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester