我做了一个小程序,用于读取数据库中的一个表,并显示出来。将其打包生成一个setup文件后,安装在自己的电脑(做为服务器使用)上可以正常使用(假设服务器的IP为172.16.20.138),运用WINDOWS模式的认证,连接字符串为:                
sql = @"Server=ip;initial catalog=数据库名;integrated security=true";
问题出在将该程序装在别的电脑上之后,输入同样的IP会提示错误:在建立与服务器连接时出错,在连接在SQL Server 2005时,在默认的设置下SQL Server不允许远程连接可能会导致此失败(provider:命名管道提供程序,error:40-无法打开到SQL Server的连接)。
我刚接触这方面的内容不久,希望各位高手能帮帮忙,看看应该怎样解决这个问题,谢谢大家。

解决方案 »

  1.   

    sql = @"Server=ip;initial catalog=数据库名;integrated security=true";红色改为:
    Server=.
    或Server=(local)
    或Server=localhost
    试试
      

  2.   

    解决方法:开始-> 所有程序-> Ms   Sql   Server-> 配置工具-> sql   server外围应用配置器-> 服务和连接的外围应用配置器-> 打开MSSQLSERVER节点下的Database   Engine   节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named   pipes ",确定后,重启数据库服务就可以了.
      

  3.   

    http://zhidao.baidu.com/question/69931784
      

  4.   

     应该写成Server.或者是Server=localhost 因为这2种都是代表着连接本机
      

  5.   

    解决方法:开始-> 所有程序-> Ms Sql Server-> 配置工具-> sql server外围应用配置器-> 服务和连接的外围应用配置器-> 打开MSSQLSERVER节点下的Database Engine 节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named pipes ",确定后,重启数据库服务就可以了.正解!
      

  6.   

    如果数据库连接是以IP方式,只要不是127.0.0.1(根据sqlserver版本不同而不同)
    都需要在外围管理中允许远程连接才可以
      

  7.   

    <add name="ConnectionString3" connectionString="Provider=SQLOLEDB;Data Source=172.16.20.138;Persist Security Info=True;Password=sa;User ID=sa;Initial Catalog=cx" providerName="System.Data.OleDb" />
    <!--<add name="ConnectionString3" connectionString="Provider=SQLOLEDB;Data Source=127.0.0.1;Persist Security Info=True;Password=sa;User ID=sa;Initial Catalog=cx" providerName="System.Data.OleDb"/>-->上面的是连别台电脑,
    下面注解掉的是连本机。
    如果需要别的电脑连自己的数据库,
    你记得自己的数据库要开混合验证模式。
      

  8.   

    谢谢你的回复,我建立的窗体应用程序,数据库采用的SQL SERVER2005 能不能给我一个连接字符串。谢谢
      

  9.   

    SQL SERVER2005 连接字符串:
    <add key="ConnectionString3" value="data source=(ip或服务器名称);Initial Catalog=数据库;persist security info=true; User ID=用户 ;password=密码" />