运行.Net的程序时,提示:“
无法更新数据库 "C:\PROGRAM FILES\MICROSOFT ASP.NET\ASP.NET AJAX SAMPLE APPLICATIONS\V1.0.61025\CONTACTS\APP_DATA\CONTACTS.MDF",因为数据库是只读的。”
环境:
<!--Integrated Security=true;User Instance=True-->
<add name="ContactsConnectionString" connectionString="Data Source=.;AttachDbFilename=|DataDirectory|\Contacts.mdf;uid=sa;pwd=123456;" providerName="System.Data.SqlClient"/>
</connectionStrings>
原因:
解决办法:
附:
ON (filename='C:\Program Files\Microsoft ASP.NET\ASP.NET AJAX Sample Applications\v1.0.61025\Contacts\App_Data\Contacts.mdf')
FOR ATTACH
环境:
- web.config配置:
<!--Integrated Security=true;User Instance=True-->
<add name="ContactsConnectionString" connectionString="Data Source=.;AttachDbFilename=|DataDirectory|\Contacts.mdf;uid=sa;pwd=123456;" providerName="System.Data.SqlClient"/>
</connectionStrings>
- 运行 SQL Server Management Studio(开始,运行:Sqlwb):
原因:
- 附加数据库时,数据库文件的属性是只读。
- 运行SQL Server实例的帐户对附加的数据库文件不具备相应的修改权限。
解决办法:
- 取消文件的只读属性。
- 查看运行SQL Server实例的帐户。
- 如上图所示,如果启动SQL Server实例的帐户是Network Service,那么将其修改为Local Service,然后重新启动SQL Server实例。如果是指定的帐号用于启动SQL Server实例,那么进行下面操作。
- 修改文件安全属性。
附:
- 附件数据库的T-SQL语句:
ON (filename='C:\Program Files\Microsoft ASP.NET\ASP.NET AJAX Sample Applications\v1.0.61025\Contacts\App_Data\Contacts.mdf')
FOR ATTACH
- 关于之前使用“sp_attach_db”附加数据库,微软建议不要继续使用。”重要事项:后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并应着手修改当前还在使用该功能的应用程序。 我们建议您改用 CREATE DATABASE database_name FOR ATTACH。“