日期:2014-05-18  浏览次数:20870 次

发布后的数据库连接从SQL2000变成了SQL2005连接
按照以往常规.
VS2005+SQL2000.开发一款单机版本的winform程序,数据量很大,需用到数据库.
在本机测试完成.没任何异常.打包发布以后.
换一个很干净的XP电脑(无任何开发环境).安装.NET2.0与SQL2000.并且建好数据库.
运行程序.

在执行连接数据库的时候.报错:
System.Data.SqlClient.SqlException: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

在本机开发的时候使用的是SQL2000.
APP.CONFIG的全部语句为:
XML code
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
      <add name="zgz.Properties.Settings.zyzgConnectionString" connectionString="Data Source=127.0.0.1;Initial Catalog=abc;Persist Security Info=True;User ID=123;Password=123456"
           providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>


form内的调用语句为:
C# code

public string connectionstring =roperties.Settings.Default.zyzgConnectionString.ToString();



于是尝试第一种方法,我尝试在form1内将连接字符串单独写出来,看是不是字串符的错.:
C# code

//public string connectionstring =roperties.Settings.Default.zyzgConnectionString.ToString();
public string connectionstring ="server=127.0.0.1;database=abc;user id=123;password=123456;";


本机测试OK,换电脑报同样错误.

尝试第二种方法,网上下载SQL2005数据库配置工具,SQL Server Configuration Manager进行配置.打开IP/TCP.重启电脑.
按照: http://www.cnblogs.com/airwolf2026/archive/2008/04/28/1175102.html操作.

仍然报错.错误照常.提示我连接到2005的时候连接失败.

这里问下各位达人:
为什么我在自己电脑上建里的SQL2000数据库,发布以后.他却用的是2005的管道连接?
开发winform时.SQL2000连接与SQL2005的连接区别在哪?是开发的时候代码区别?引用区别?还是在哪区分?
如果一定要用SQL2000连接又应该怎么做?报错的最终根源在哪?

程序全部开发完成,唯独这个问题无法解决.而用户电脑是XP系统.SQL2000.
应该怎么做才能搞定这个错?在线求指教!

------解决方案--------------------
我猜测问题出在打包环节,仔细检查下打包时的相关配置。
------解决方案--------------------
检查一下连接字符串中的用户名和密码在SQL2000里设置了没有。
报这种错可能是连接字符串同数据库不一致。
------解决方案--------------------
<configuration>
<appSettings>
<add key="CONNECTION" value="server=服务器名称;User ID=用户名;Password=密码;database=数据库名;Pooling=true;Connection Reset=FALSE; Connect Timeout=120;"/>
<add key="Ip" value="192.168.1.112"></add>
<add key="Port" value="11100"></add>
</appSettings>
</configuration>
------解决方案--------------------
sql 2000和2005对于程序来说没有区别吧
------解决方案--------------------
必须安装 SQl 2000 sp4

并且端口(默认是1433)没有被防火墙限制。
并且用户名、密码设置正确,
并且启用Windows和SQL Server混合验证




------解决方案--------------------
只用WINDOWS验证方式看下...