[ johnnyc @ 30.03.2009. 15:15 ] @
Pozdrav,

Radim nad podacima u Access bazi.

Ponekad (ponekad, ne uvek) mi se desava da iako zatvaram konekciju sa

Code:

con.Close();
con.Dispose();


.... ipak ostane aktivan LDB fajl. A to mi pravi problem, jer mi aplikacija padne kada naredni put pokusam da izvrsim upit.

Kako bih mogao da prevazidjem ovaj problem?

Hvala unapred!


[ johnnyc @ 30.03.2009. 19:01 ] @
Ovako... Probao sam sa sledecim:

Code:

            while (con.State != ConnectionState.Closed)
            {
                con.Close();
            }


Iako mi se cini da se problem javlja malo redje, on se i dalje javlja,


Please help!

[ sallle @ 30.03.2009. 23:59 ] @
a da nemas neki reader ili tako nesto sto zakljuca fajl?
Jel referencu na fajl navodis samo u konekcionom stringu?
[ johnnyc @ 06.04.2009. 07:38 ] @
Evo ovako izgleda code:


Code:

string connectReport = "Provider=Microsoft.JET.OLEDB.4.0;data source=" + MyClass.dbName;
OleDbConnection conReport1 = new OleDbConnection(connectReport);
conReport1.Open();

/* delete all records from report table */
sql = "delete from DataUnion";
OleDbCommand cmdTruncate = new OleDbCommand(sql, conReport1); // creating query command
OleDbDataReader readerTrncate = cmdTruncate.ExecuteReader(); // executes query
//Console.WriteLine(sql);
cmdTruncate.Dispose();
while (conReport1.State != ConnectionState.Closed)
{
    conReport1.Close();
    conReport1.Dispose();
}


OleDbConnection conReport2 = new OleDbConnection(connectReport);
conReport2.Open();
/* Reset autoNumer value */
/* puca u ovom delu, predpostavljam da nije zavrsio brisanje selektovanih recorda iz predhodnog dela */
sql = "ALTER TABLE DataUnion ALTER COLUMN Id COUNTER(1,1)";
OleDbCommand cmdReset2 = new OleDbCommand(sql, conReport2); // creating query command
OleDbDataReader readerReset2 = cmdReset2.ExecuteReader(); // executes query
cmdReset2.Dispose();
while (conReport2.State != ConnectionState.Closed)
{
    conReport2.Close();
    conReport2.Dispose();
}


Any ideas?
[ Marko Medojević @ 06.04.2009. 08:29 ] @
Što za UPDATE i DELETE komande pozivaš ExecuteReader()? Kod SELECT komandi ti je potreban Reader zato što one vraćaju podatke, dok se UPDATE i DELETE izvršavaju sa ExecuteNonQuery() koji vraća integer(affected rows). Takođe imaš i ExecuteScalar() i on se koristi kada imaš SQL koji vraća jedno polje tipa "SELECT COUNT(*) FROM Studenti".
Probaj da uradiš na ovaj način pa reci da li ti se još uvek javlja problem.