SQL Compact Edition 3.5 - Access to the database file is not allowed

24,332

Solution 1

Make sure you use |DataDirectory| in your connection string. Here is an example

connectionString="Data Source=|DataDirectory|MyDB.sdf"

I had the exact same problem ay you and I managed to fix it by adding the |DataDirectory| to my connection string.

Good luck.

Solution 2

This worked for me: http://solutionevangelist.com/community/discussion/20/access-to-the-database-file-is-not-allowed.-system.data.sqlserverce.sqlceexception/p1

It it usually a permissions issue. I give "Everyone" full permissions to the .sdf file in App_Data, either via the GUI, or using

icacls database.sdf /grant Everyone:F

Solution 3

I also had this same problem. My solution was in TFS/SourceControl at the time when I deployed it and the sdf file was checked-in (ie read-only) and this caused me the exact same error as above. When I checked out the sdf file and deployed again, everything was fine. Thought I'd share that in case other TFS users experience the same issue.

Solution 4

Here are a two other suggestions:

  • Try to run your Visual Studio as administrator
  • Check if the 'readonly' attribute is set on the sdf file
Share:
24,332
WoF_Angel
Author by

WoF_Angel

Updated on July 09, 2022

Comments

  • WoF_Angel
    WoF_Angel almost 2 years

    I developed an application (100% local, no access to servers) using SQL Server Compact 3.5, and it works fine on my computer. However, when I deployed it on another computer, it shows this error:

    Access to the database file is not allowed. [ File name = data\BDApepucCE.sdf ]
    

    I deployed on a Windows XP computer. It shows this error whenever I try to write on the database, however, it works when I read.

    I did a test on a Windows 7 computer, and it worked 100%, except when the file was accessed through the homegroup (that is, local network), on which it failed on both read/write.

    Platform: Windows 7, Visual Studio 2010, and .NET 4 Client Profile

  • jp2code
    jp2code almost 13 years
    Is there a technique to get around the 'readonly' setting? I found this post on MSDN, but it points to a dead link: social.msdn.microsoft.com/Forums/en-US/sqlsecurity/thread/…
  • p.campbell
    p.campbell about 12 years
    This worked for me. I modified the Windows ACL /permissions on the App_Data directory. Gave permissions to Authenticated Users.
  • Admin
    Admin almost 12 years
    Just for clarity's sake, your answer worked for me, but with only |DataDirectory| preceding the file name, not including any asterisks.
  • sevenkul
    sevenkul over 7 years
    Thank you very much, this solves the error when I attemp to make a new SQL CE 4 database in LINQPad4.
  • Jeterson Miranda Gomes
    Jeterson Miranda Gomes over 6 years
    Funcionou pra mim também dei acesso ao arquivo e voila.
  • FindOutIslamNow
    FindOutIslamNow over 6 years
    Good, but we need a code to automate the removing of "readonly" file attribute once the CAB project is built (maybe using Post Build)