环境:WIN VISTA   工具:VS2005     SQL2005     SQL2000(先安装的是2005).错误描述:
    在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 企业管理器里面是:
Microsoft SQL Severs
     SQL Server 组
         ABC-wx\PSP(Windows NT)          IP:192.168.27.49详细连接代码:
     SqlConnection connection = new SqlConnection("server=192.168.27.49;database=Contorl;uid=cqaf55648;pwd=aptx4869;");
                connection.Open();
                SqlCommand command = new SqlCommand("select count(*) as total from sysobjects where name='" + this.textBox1.Text + "'", connection);
                if (Convert.ToInt32(command.ExecuteScalar()) == 1)
                {
                    //MessageBox.Show("已存在!!");
                    connection.Close();
                    this.Close();
                }红色为错误处!!请大家帮个忙啊,谢谢啦.....

解决方案 »

  1.   

    這個問題有點郁悶  VISTA系統好象 用SQL2005 有點問題  我碰到過 
      

  2.   

    检查一下服务器设置http://blog.csdn.net/wfevgch/archive/2007/09/29/1806648.aspx参考一下
      

  3.   

    不好意思,我补充一下!需要连接的是SQL2000,不是连接2005,2005完全没有问题.企业管理器里面是: 
    Microsoft SQL Severs 
         SQL Server 组 
             ABC-wx\PSP(Windows NT)          IP:192.168.27.49 这个是2000的数据库状况!
      

  4.   

    是不是sql的端口号不是默认的?
      

  5.   

    LS:安装SQL的时候都是默认安装的.没有设定过端口.
      

  6.   

    好像程序一直在连接2005数据库,如何连接2000??能否关闭SQL2005的服务.我关闭失败.提示:拒绝访问(ObjectExplorer)
      

  7.   

    我把SQL2005的服务器停掉了,SQL2000还是照样可以访问(企业管理器,查询分析器).可是还是连不上.关键问题是:SQL2005的服务器名字就是本机的名字:ABC-wxSQL2000的服务器名字是:ABC-wx\PSP我用查询分析器联机的时候也是用:(local)\psp   进行连接的.可是程序里连接字符串不能用
          server=ABC-wx\PSP;database=Contorl;uid=cqaf55648;pwd=aptx4869; 里面的那个“\”是不可以使用的。。怎么办啊
      

  8.   

    链接远程SQL的话  需要安装SQL装个补丁 也就是 SQL的sp1 补丁
      

  9.   

    server=ABC-wx\PSP;database=Contorl;uid=cqaf55648;pwd=aptx4869;  
    链接的时候直接server=ip就行了  装补丁后毋须再进行其他配置 
    错误显示是SQL2000的错误信息
      

  10.   

    SQL的补丁我已经装过了,好像程序一直在连接SQL2005,我需要连接SQL2000
      

  11.   

    呵呵``你是不是没有导入命名空间啊?
    因为你代码是正确的啊``SQL没问题的话应该可以的```
      

  12.   

    没有导入命名空间的话SQLConnection的时候就应该报错了我习惯边调试边写的,写完就COPY到服务器上去。现在的环境不能调试,困扰啊。
      

  13.   

    错误的地方:
    SqlConnection connection = new SqlConnection("server=192.168.27.49;database=Contorl;uid=cqaf55648;pwd=aptx4869;"); 
    应该是                                                                                                                       ↓
    SqlConnection connection = new SqlConnection("server=192.168.27.49;database=Contorl;uid=cqaf55648;pwd=aptx4869"); 
      

  14.   

    连接字符串可以这样写:server=ABC-wx\\PSP;database=Contorl;uid=cqaf55648;pwd=aptx4869; 注意是两个"\",在C#中要使用特殊符号需要用到转接符"\",或者你可以把SQL2005的服务先停掉,只剩下SQL2000的服务就好.
      

  15.   

    1.server要保证在SQL Server Configuration Manager里的SQL Server 2005 Network Configuration里,确保TCP/IP的protocol是enable的。
    2.client也要保证Native的TCP/IP protocol也enable。
    3.当然要确保server的sql server服务已经开启。
    4.server如果开了firewall,在exceptions里添加1433 port。
    注意防火墙!!“server=192.168.27.49 ;uid=sa;pwd=;database=book" 连接字符串改下看看
      

  16.   

    建议LZ先配置一个ODBC DNS,然后测试看看,是否可以连接。如果可以,用ADO.NET ODBC CONNECTION的那个选项试试。连接SQL2005我用SQL NATIVE CLIENT,而连接SQL2000只要选SQL SERVER那个就可以了。我用VISTA,
    但数据库并没有都安装在本机,SQL2005 EXPRESS在本机,试验用。SQL2000在INTERNET上,直接设置就
    可以连接了。不会出现类似问题。如果都不行,请再查找一下SQL2005和2000共存的话题。看看是不是有什么特殊的设置或安装需要。
      

  17.   

    如果是Vista系统,需要设置SQLServer运行方式为管理员身份运行,和以XP的兼容方式运行。
      

  18.   

    楼主的服务器是不是只开了 Windows身份验证啊?
      

  19.   

    错误的地方: 
    SqlConnection connection = new SqlConnection("server=192.168.27.49;database=Contorl;uid=cqaf55648;pwd=aptx4869;");  
    应该是                                                                                                                       ↓ 
    SqlConnection connection = new SqlConnection("server=192.168.27.49;database=Contorl;uid=cqaf55648;pwd=aptx4869");  
      

  20.   

    "Data Source=192.168.27.49;Initial Catalog=Contorl;uid=cqaf55648;pwd=aptx4869"
    这样连接看可以不