Visual Studios 2010 C#sql数据库只读错误

时间:2011-05-26 19:21:06

标签: c# sql database visual-studio-2010

我正在使用本地sql数据库处理可视化C#项目。当我安装.msi文件并运行程序,然后尝试更新数据库中的某些内容时,我收到错误“无法更新数据库C:\ setup \ DBNC.mdf因为数据库是只读的”我真的很难时间搞清楚这一点,任何建议??

3 个答案:

答案 0 :(得分:5)

我要把我的魔法8球击出一分钟。我们看看......

OP是否在本地服务器上运行.sql脚本创建数据库?
回复朦胧,再试一次

OP是否包含安装包中的.mdb?
您可以依赖它

好。因此,用户通过安装包将数据库复制到该特定目录...

运行安装包时OP是否升级为管理员?
Outlook好

好的,所以OP正在创建目录并在安装过程中将文件复制到那里,所有这些都在管理员帐户的支持下。

OP是否将此文件附加到Sql Server的本地实例?
标志指向是

数据库是否在Sql Server中配置为只读? 回复朦胧,再试一次

OP是否运行ALTER DATABASE DBNC SET READ_ONLY?
不要指望它

好的,然后OP更新了C:\setup\和mdb上的NTFS安全性,以便对运行Sql Server(NETWORK SERVICE或其他帐户)的帐户进行读/写访问? 我的消息来源说没有

<强>宾果!

您将该目录创建为admin并将文件复制到该目录。运行Sql Server的帐户无权更改文件,因此您收到该错误。

您不应将数据库部署为文件。您应该创建一个.sql文件,该文件创建数据库以及其中的所有表/关系/等。这样,您始终可以确保Sql Server实例可以访问数据库。此外,它比mdb更容易版本sql脚本文件。

答案 1 :(得分:1)

我希望这可以帮助那些人。我遇到了类似的问题但是通过将我的数据库文件部署到App Data目录并修改我的连接字符串来指向那里来解决它。这神奇地解决了这个问题。

答案 2 :(得分:0)

您是否检查过.mdf文件的属性以确保它不是只读的?这听起来可能是个问题。