这是我在使用Visual Studio 2008开发平台时遭遇的报错。这个错误是在服务器资源管理器中添加连接,加载数据库文件时发生的错误。
什么鬼???当时很纳闷,我以前从来没见过这样的奇葩问题啊?一直都是顺利通过啊?我百度了一下,网上有些说法,什么什么“登录超级管理员删除Local/AppData/。。。。bla bla bla……文件夹,重启就可以啦”什么的,我费半天劲照做了,毛用也不管。不知道是我人品欠费了,还是这一招本来就不太灵,然后又让一大堆人直接抄过去了。
好吧,自力更生,丰衣足食。下面开始分析。首先说明一下,我当时用的是Win10系统,VS是2008版本,数据库是VS附带的2005 Express版。
我仔细回忆了一下我惨遭报错的经过,发现我在之前操作的过程中存在一个细节,就是我把项目复制的一份副本到另一个文件夹下,顺便也把数据库复制过去了一份。
其实问题就出在这里,并不是什么严重问题,这个报错恰恰出在了一个非常基本的点——权限上了。
没复制数据库之前,数据库是我创建的,所以权限都在我这,妥妥的。但是我手动复制文件之后,权限就很难归我了——事实就是如此,点开属性,点“安全”选项卡,点自己的用户,看下面的权限,想必就什么都明白了——此时的这个文件,我并没有控制它的权限。遂改之。再试,过矣。
总结:当看到上述报错时,如果之前手动复制了数据库文件,需修改MDF和LDF两个文件属性,将控制权限据为己有,即可正常连接,完美如初。
顺便提一句,有些时候在添加连接时,数据源选择Microsoft SQL Server,加载数据库文件时总是出问题:
1、这有可能是在给数据库起逻辑名时出的问题,尝试将逻辑名去掉留空白再试;
2、还有可能因为数据库物理文件MDF文件与日志文件LDF在内容上不匹配,尝试更改数据源,选择“Microsoft SQL Server数据库文件”,直接加载MDF文件,测试连接。