我在应用程序中有一个本地数据库。当我在另一台机器上安装它时出现错误
无法更新数据库.. .ddf是只读的。
我能够通过编辑.mdf
和日志文件本身的权限来绕过它。我做了一些研究,发现我可能想将数据库安装到共享文件夹。但是,我不知道该怎么做,我遇到的答案并没有多大意义。
//My connection string
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|AssetDatabase.mdf;Integrated Security=True");
非常感谢任何指导。我正在学习。
答案 0 :(得分:0)
MDF文件将是readonly,因为readonly文件属性标志已设置,在这种情况下您必须取消设置,或者另一个程序将MDF文件锁定为readonly。您是否正在运行使用该文件的SQL Server版本?
我从未见过直接连接到MDF文件,通常是通过服务器完成的,服务器将管理MDF文件的所有IO。
E.g。 SQL Server的典型连接字符串:
Database=<dbname>;Server=<servername>;MultipleActiveResultSets=True;Connection Timeout=10;User Id=<username>;Password=<password>;
其他链接:
1)Failed to update .mdf database because the database is read-only (Windows application)
2)Failed to update database because it is read-only
3)Failed to update database "*.mdf" because read only EntityFramework
4)http://www.codeproject.com/Questions/183758/Failed-to-update-mdf-database-because-the-database
答案 1 :(得分:0)
"./"
文件,然后点击“属性”。OR
只需将您的应用程序安装在ProgramFile(x86)以外的其他文件夹中
答案 2 :(得分:0)
我解决了同样的问题,如下:
在创建“安装程序”时,我手动将我的数据库文件 database.mdf and database_log.ldf
添加到 Application Folder
文件中。但添加这些文件后,请确保 ReadOnly
部分中的 Properties
选项为 False
。
还有“connectionString”我使用:
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\database.mdf;Integrated Security=True;Connect Timeout=30"
答案 3 :(得分:-1)
如果您的数据库文件在C卷上, 尝试将.mfd文件移动到D卷