快疯掉了,sql server 2005数据库连接问题,100分求救
数据库名: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   共享目录中。” 
------解决方案--------------------ereryone设置写入权限 
 首选要确认已经为C分区以及C分区的子文件夹和文件分配了Users组的“读取”权限。如果问题仍然存在,请使用SQL Server Management Studio连接到SQLEXPRESS数据库实例,检查是否有名称是“Database”的数据库存在。如果有,分离同名数据库即可。 
------解决方案--------------------附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。   
 是不是有同名的数据库?或更改数据库的文件名,逻辑名试试.
------解决方案--------------------不会是要附加的数据库文件在客户端,而连接用于附加的sql在另一台服务器上吧?   
 如果这样的话,肯定是不能附加成功的
------解决方案--------------------SqlConnectionStringBuilder的AttachDBFilename属性,对应connectionString中的AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。AttachDbFileName属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的App_Data目录所代替。 
 _________________________________ 
 我想到的解释是,每次要建立数据库连接时,由于上面属性要动态加载数据库;而你的数据库服务器上已经有上述同名数据库,使得每次Con.Open()建立连接出现 
  "附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。 "的错误. 
 修复问题的办法是修改连接字符串,直接指定database=chat,然后把指定的数据库文件.mdf附加到服务器即可.