快疯掉了,sql server 2005数据库连接问题,100分求救

tiantian1980 2007-09-24 11:50:06
数据库名:C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\TOOLS\MYCHAT1.0\CHAT\APP_DATA\CHAT.MDF

结果出现这样的错误:
尝试为文件 C:\Documents and Settings\Administrator\桌面\tools\mychat1.0\Chat\app_data\chat.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 尝试为文件 C:\Documents and Settings\Administrator\桌面\tools\mychat1.0\Chat\app_data\chat.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。

源错误:


行 27: SqlDataReader Reader;
行 28: if (Con.State != ConnectionState.Open)
行 29: Con.Open();//打开数据库连接 这里出现错误的代码。
行 30: SqlCommand Com = new SqlCommand(search, Con);
行 31: Reader = Com.ExecuteReader();//执行sql语句
是刚接触sql server 2005 和 VS2005,OS是vista

string path = @"C:\Documents and Settings\Administrator\桌面\tools\mychat1.0\Chat";
str = "Data Source=.\\SQLEXPRESS;AttachDbFilename=\"" + path + "\\app_data\\chat.mdf\";Integrated Security=True;User Instance=True";
在网上查了很多,问题还是依旧。好几个星期了,恨死这个几个字了,“附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。”
...全文
4036 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
oujiachao 2012-01-06
  • 打赏
  • 举报
回复
今天突然想把webcofing连接改成AttachDbFilename,靠了,居然和楼主提示一样错误,百思不得其解啊~最终这样解决了,AttachDbFilename 使用路径“//“改成 “/" ,照理说两个反斜杠表示转义应该没问题,我看网上那篇文章总计webcofing连接数据库已这样写的,误导我了!!
c_007 2010-08-05
  • 打赏
  • 举报
回复
楼主把原来的数据库保存下来。在数据库中把数据库删了。我样做是可以的。你试试。
zpy123456 2008-12-01
  • 打赏
  • 举报
回复
我把在家里面做的工程,带到公司,也出现这个情况。但是解决了:
我的情况是用NUnit测试类出现上面情况。
把web site改为启动项目,就OK了。(我的数据库是放在web site项目的)
希望可以帮助大家
zpy123456 2008-12-01
  • 打赏
  • 举报
回复
我把在家里面做的工程,带到公司,也出现这个情况。但是解决了:
我的情况是用NUnit测试类出现上面情况。
把web site改为启动项目,就OK了。(我的数据库是放在web site项目的)
希望可以帮助大家
zpy123456 2008-12-01
  • 打赏
  • 举报
回复
我把在家里面做的工程,带到公司,也出现这个情况。但是解决了:
我的情况是用NUnit测试类出现上面情况。
把web site改为启动项目,就OK了。(我的数据库是放在web site项目的)
希望可以帮助大家
DCD 2008-07-30
  • 打赏
  • 举报
回复
尝试为文件 E:\htdocs\xxxx\App_Data\epopclass.MDF 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。

给everyone组加读写权限都不行,数据库名字也改过来了,为啥还不行呢。
xiebinren 2007-09-30
  • 打赏
  • 举报
回复
换一下路径,不要放在桌面
ruihuahan 2007-09-27
  • 打赏
  • 举报
回复
同意楼上。连接串有问题,已运行的数据库实例已经附加了数据库文件。客户端打开连接时,不用附加数据文件,直接连接到指定数据库就可以了。
hailili 2007-09-26
  • 打赏
  • 举报
回复

之前也碰到附加数据库问题。

新建的数据库的物理路径 和 要附加的数据库的原的物理路径 好象要相同。。
i_love_pc 2007-09-26
  • 打赏
  • 举报
回复
是不是路径的问题,放到其他地方看看。
tiantian1980 2007-09-26
  • 打赏
  • 举报
回复
qiuming0306(默弦)
你这种方法我也在网上查到过,也试了,还是不行。
————————————————————————————————
zjcxc(邹建)
我附加的数据库都在一台电脑上,是在我自已的电脑上试的
————————————————————————————————————————
是不是有附加的sql代码,多次运行的时候肯定存在附加的数据库同名的情况!
——————————————————————————————
没有附加的sql代码
xujianrj 2007-09-26
  • 打赏
  • 举报
回复
实验证明,实属上述问题
有必要把连接字符串中的AttachDBFilename删掉,将AttachDBFilename="^^^^"
改成database=chat就好了
xujianrj 2007-09-26
  • 打赏
  • 举报
回复
SqlConnectionStringBuilder的AttachDBFilename属性,对应connectionString中的AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。AttachDbFileName属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的App_Data目录所代替。
_________________________________
我想到的解释是,每次要建立数据库连接时,由于上面属性要动态加载数据库;而你的数据库服务器上已经有上述同名数据库,使得每次Con.Open()建立连接出现
"附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。"的错误.
修复问题的办法是修改连接字符串,直接指定database=chat,然后把指定的数据库文件.mdf附加到服务器即可.


火星求索 2007-09-26
  • 打赏
  • 举报
回复
你可以将原数据库生成脚本,在本地数据库中新建一个数据库
然后执行你的脚本,
所有的东西就都过来了,但是没有数据
ojuju10 2007-09-25
  • 打赏
  • 举报
回复
是不是有附加的sql代码,多次运行的时候肯定存在附加的数据库同名的情况!
zjcxc 2007-09-25
  • 打赏
  • 举报
回复
不会是要附加的数据库文件在客户端,而连接用于附加的sql在另一台服务器上吧?

如果这样的话,肯定是不能附加成功的
dawugui 2007-09-25
  • 打赏
  • 举报
回复
附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。

是不是有同名的数据库?或更改数据库的文件名,逻辑名试试.
qiuming0306 2007-09-25
  • 打赏
  • 举报
回复
ereryone设置写入权限
首选要确认已经为C分区以及C分区的子文件夹和文件分配了Users组的“读取”权限。如果问题仍然存在,请使用SQL Server Management Studio连接到SQLEXPRESS数据库实例,检查是否有名称是“Database”的数据库存在。如果有,分离同名数据库即可。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧