Link to home
Start Free TrialLog in
Avatar of YZlat
YZlatFlag for United States of America

asked on

Could not use ''; file already in use error when opening Access database

I have a dropdown on my page that gets populated from Access dataabse. I am not using AccessDataSource but instead just using OleDbConnection object. I keep getting "Could not use ''; file already in use" error. Sometimes it works but most of the time that error comes up.  I gave ASPNET user full control to the folder where my mdb file is stored.

here is my connection string and code below:

 <add name="conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Northwind.mdb;" providerName="System.Data.OleDb"/>
public OleDbConnection GetConnection(string strConn)
    {
        OleDbConnection conn = null;
        try
        {
            conn = new OleDbConnection(strConn);
            conn.Open();
        }
        catch (OleDbException ex)
        {
            Console.Write("OleDb ERROR: " + ex.Message);
        }
        catch (Exception ex)
        {
            Console.Write("ERROR: " + ex.Message);
        }
        return conn;
    }

Open in new window

Avatar of Ravi Vaddadi
Ravi Vaddadi
Flag of United States of America image

It might be that you missed to close the connection once you are done with it. Please make sure you close the connection in all scenarios.

You would find a mdb lock file under the the same folder where ur mdb file is sitting. please delete that file and you should be all set.

If you are not able to delete the file. close the application and try.
Avatar of YZlat

ASKER

The Access application is closed at all times and I do clode the connection after reading data;
cmd.ExecuteReader(CommandBehavior.CloseConnection);
are you closing your data reader? I meant closing your .net application and the access application. close your asp.net development servers sitting in the system tray and try deleting the lock files if any.
Hi,

Please check link:
http://support.microsoft.com/kb/289681

Regards,
VSS
Avatar of YZlat

ASKER

Yes, I am closing the data reader.

Also what i noticed is that sometimes app loads data into dropdown fine and when I select an item from a dropdown, it displays data on the page, but if I try to select another item the second time around, it also gives me this error. What can i do to fix it?
Hi,

You didn't respond for link.

Regards,
VSS
Could you post your code ? So we could understanding what is happening around
Avatar of YZlat

ASKER


public OleDbDataReader ExecuteSimpleQuery(string query, string strConn)
    {
        OleDbConnection conn = GetConnection(strConn);
        OleDbDataReader rdr = null;
        try
        {

            using (OleDbCommand cmd = new OleDbCommand(query, conn))
            {
                rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
        }
        catch (Exception ex)
        {
            Console.Write("Error executing query " + query + ": " + ex.Message);
            rdr.Close();
            rdr = null;
        }

        return rdr;
    }

Open in new window

Avatar of YZlat

ASKER

vs00saini, the database is not on the server. Instead it's on the same machine as the web application. It's an access database
Hi,

I agree that database is not on the server. But however you are creating web application. Then either you are using inbuilt server of VS or your system would be considered as server in that case.

Is your same folder is having .ldb files to prevent different users to access same resource at a time.

Regards,
VSS
Avatar of YZlat

ASKER

It's not a permissions issue, i checked before I posted the question here
ASKER CERTIFIED SOLUTION
Avatar of Vikram Singh Saini
Vikram Singh Saini
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of YZlat

ASKER

I actually didn't have to change anything in my code, it just started working
Avatar of dejandejanovic
dejandejanovic

FINALLY SOLUTION ALSO FOR ME.
To reset all resources, posted by Vikram was helpful form.