这个问题把我折磨了好几个夜晚!查了N多的资料也没有找到一下就能解决的办法!还有那个提示“error25的字符串错误的”的警报!
关于第一个问题:我的机子装的是VS2008+SQLSERVER2008
我的解决办法是把VS2008和sql2008(我是先装sql2008后装vs的)安自定义依次把所有组件都安装上去,等装完后在看看,有可能sql2008会把VS中自带的SQL2005覆盖掉,不过没关系,[e04]覆盖掉的话就在控制面板中选择重新安装VS组件,这样他就会又把默认的sql2005express组件给安装上去,且不会与前面的SQL2008冲突! 对于这个问题研究了好几天,终于解决了!哈哈。。。
当然啦这边还有一些相关的资料,说的可能是符合某些机子上出现的此类错误的,故一并贴出http://blog.csdn.net/hfangliao/archive/2008/10/05/3017606.aspx !
邀月版主写的那两篇文章也很经典
http://www.cnblogs.com/downmoon/archive/2007/12/29/1019264.html
http://www.cnblogs.com/downmoon/archive/2009/08/20/1550850.html
在VS中添加Microsoft SQL Server 数据库文件 (SqlClient)的数据连接时,在高级选项中的Data Sourse一项,邀月选择的是./agronet08,而我是选得的是./ 。不过后面的User Instance必须选False
http://blog.csdn.net/downmoon/archive/2010/06/23/5688919.aspx
http://www.myext.cn/aspnet/4660.html
**************************************************************************************
下面是网上看到的一些相关的比较经典的错误及其解决方案:
not open a connection to SQL Server)
异常详细信息: System.Data.SqlClient.SqlException: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
解决方法:
检查后发现是webconfig的配置问题,将server=local,或改成本地计算机名,问题解决。
(注意:确保登陆MS SQL Server的账号密码和 web.config文件的配置一致)
如:
providerName="System.Data.SqlClient">
说明:
数据库连接字符串
一种(直接附加):Data Source=计算机名/IP//SQLEXPRESS; AttachDbFilename=|DataDirectory|数据库文件名.mdf; Integrated Security=True; Connect Timeout=30; User Instance=false
如:
Data Source=.//SQLEXPRESS;;AttachDbFilename=|DataDirectory|db.mdf; Integrated Security=True; Connect Timeout=30; User Instance=false
不需要在MSSQL附加上数据库
另一种(需要在MSSQL附加上数据库):data Source=计算机名/IP;database=数据库名;uid=sa;pwd=密码;"
IP 可以用 127.0.0.1或者local 或者.表示本机
************************************************************************************
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
首 选请确认SQL SERVER EXPRSS已安装到本地计算机上,并且SQL SERVER (SQLEXPRESS)服务已经成功启动。如果问题仍然存在,可以尝试应打开“SQL Server 外围应用配置器”,选择“服务和连接的外围应用配置器”,然后将“远程连接”配置为“同时使用 TCP/IP 和 named pipes”
由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
将连接字符串中的“User Instance=True”修改为“User Instance=False”即可。
相关参考文章请参阅《非管理员用户实例》
无法将文件 'X:/Website/App_Data/Database.mdf' 作为数据库 ''. 附加。当前命令发生了严重错误。应放弃任何可能产生的结果。
需要为X分区以及X分区的子文件夹和文件分配Users组的“读取”权限。
尝试为文件 X:/Website/App_Data/Database.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
首 选要确认已经为X分区以及X分区的子文件夹和文件分配了Users组的“读取”权限。如果问题仍然存在,请使用SQL Server Management Studio连接到SQLEXPRESS数据库实例,检查是否有名称是“Database”的数据库存在。如果有,分离同名数据库即可。(特别是这一个,很容易造成莫名其妙的错误)
无法打开用户默认数据库。登录失败。
用户 'NT AUTHORITY/NETWORK SERVICE' 登录失败。
数据库文件Database.mdf 的读写权限被设置成只有NETWORK SERVICE才具有。解决方法是先停止掉SQL SERVER (SQLEXPRESS)服务,然后从父项集成权限,再次启动SQL SERVER (SQLEXPRESS)服务即可。
更改数据库文件的Everyone修改权限,在windows xp中有两个方法可以修改它:
1,在"我的电脑"窗口中点"工具",选择"文件夹"选项,选择"查看"选项,在高级设置中将使用简单文件共享复选框中的小勾勾掉。然后选定数据库文件,你就可以发现多了一个安全选项,点击它,选择everyone用户组,如果没有,你可以自行添加它。然后更改它的控制权限。
2,你也可以重新启动计算机,在进入系统时按下F8,选带网络连结的安全模式,然后你选定数据库文件, 这时也有一个安全选项,你按照上面的方法也可以完成同样的功能。
注:该方法解决以下问题:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 尝试为文件 项目名/App_Data/aspnetdb.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
******************************
解决过程:
1.新建数据库 account
2.停止sql服务:COMPUTER的 服务:SQL SERVER(注:不能在进程中停止,需正常停止)--------关键:否则无法拷贝和添加数据
源.我就是犯了这个错误
3.拷贝account文件到project/data文件价中.
4 再启动COMPUTER/SQLEXPRESS服务--这步好象可以省
5.启动stdio2005添加数据源向导即可!!!