分享由字符“”转义引起的SQL数据库实例名称找不到或远程连接失败并显示错误error40的解决办法:

一、问题介绍

很久没有用c#去连数据库程序了,不过在网上找了一些资料,基本上还是写出来了,但是调试初步完成的程序时候,却发现在con.open()这个方法总是出错,说找不到数据库实例名称,或者远程连接失败,显示的错误是error40。

错误如下:

SQL Server连接失败错误error40 sql无法连接服务器error40_sql

二、环境介绍

1、我的数据库是sqlserver2008,使用的开发环境是vs2013,.net4.0

2、我的数据库安装采用的命名实例,所以在编写数据库连接字符串的时候的服务器名称应为 【计算机名数据实例名】

数据库连接字符为:

SQL Server连接失败错误error40 sql无法连接服务器error40_解决方法_02

当发现连接错误之后,我以为是我的sql2008和vs2013环境不对而导致的错误,之后把以前的项目打开,把数据库附加上,更改一下数据连接字符串,发现错误是一样的。

三、解决办法

找了一个多小时错误最后发现,以前写sql连接字符的时候前面的都会加一个@符号,因为我字符串中有字符“”,如果不加的会提示错误,所以我每次都会加了。但是上次重装系统的时候把命名实例改为了“t”字符开头的名称了。然后【t】这个表示是一个制表格符,所以并不是会出错,本身就是一个转义符号的正确的使用场合,因为没有出错,也就忘记了加“@”了。

解决办法就是在字符串前面加一个@。

注意

在写sql连接字符串,或者是在windows平台写文件路径的时候都记得在前面加上@字符,养成良好的习惯。

您可能感兴趣的文章:SQL Server 2005 还原数据库错误解决方法在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误解决SQL2005备份数据库.dat或bak还原时的结构错误的解决方法连接ACCESS数据库时发生错误提示:找不到可安装的 ISAMsql2008 附加数据库时出现错误5123提示的解决方法sql2005 附加数据库出错(错误号:5123)解决方法plsql连接oracle数据库报ora 12154错误解决方法SQL2008 附加数据库提示5120错误解决方法SQLSERVER数据库中的5173错误解决方法SQL2008 附加数据库提示 5120错误 解决办法使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法解析mysql数据库还原错误:(mysql Error Code: 1005 errno 121)MySQL数据库导出与导入及常见错误解决Sqlserver 2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法