救命:一个关于远程连接数据库的问题

yunwuxin009 2010-05-05 02:30:11
我做了一个小程序,用于读取数据库中的一个表,并显示出来。将其打包生成一个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的连接)。
我刚接触这方面的内容不久,希望各位高手能帮帮忙,看看应该怎样解决这个问题,谢谢大家。
...全文
112 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
nbhx2010 2010-05-05
  • 打赏
  • 举报
回复
这个很简单的吧
网上一搜一大堆
gohappy2008 2010-05-05
  • 打赏
  • 举报
回复
SQL SERVER2005 连接字符串:
<add key="ConnectionString3" value="data source=(ip或服务器名称);Initial Catalog=数据库;persist security info=true; User ID=用户 ;password=密码" />
yunwuxin009 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 trueplk 的回复:]
<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" />
<……
[/Quote]
谢谢你的回复,我建立的窗体应用程序,数据库采用的SQL SERVER2005 能不能给我一个连接字符串。谢谢
trueplk 2010-05-05
  • 打赏
  • 举报
回复
<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"/>-->

上面的是连别台电脑,
下面注解掉的是连本机。
如果需要别的电脑连自己的数据库,
你记得自己的数据库要开混合验证模式。
deknight 2010-05-05
  • 打赏
  • 举报
回复
如果数据库连接是以IP方式,只要不是127.0.0.1(根据sqlserver版本不同而不同)
都需要在外围管理中允许远程连接才可以
yunwuxin009 2010-05-05
  • 打赏
  • 举报
回复
谢谢大家的帮忙,我已经在配置工具里面设置了。
我的主要目的是要把程序装在另一台电脑,然后在别的电脑上访问我电脑中的数据库,有点类似于C/S模式,请大家帮帮忙。谢谢
捷哥1999 2010-05-05
  • 打赏
  • 举报
回复
解决方法:开始-> 所有程序-> Ms Sql Server-> 配置工具-> sql server外围应用配置器-> 服务和连接的外围应用配置器-> 打开MSSQLSERVER节点下的Database Engine 节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named pipes ",确定后,重启数据库服务就可以了.

正解!
言士心 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 freesarge 的回复:]
解决方法:开始-> 所有程序-> Ms Sql Server-> 配置工具-> sql server外围应用配置器-> 服务和连接的外围应用配置器-> 打开MSSQLSERVER节点下的Database Engine 节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named pipes ",确定后,重启数据库服务就可以了.
[/Quote]
还应该映射端口!
言士心 2010-05-05
  • 打赏
  • 举报
回复
楼上的设置以后,还应该映射端口吧!
-小蕾- 2010-05-05
  • 打赏
  • 举报
回复
应该写成Server.或者是Server=localhost 因为这2种都是代表着连接本机
7年 2010-05-05
  • 打赏
  • 举报
回复
2楼的方法可行。
指间的风 2010-05-05
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/69931784
指间的风 2010-05-05
  • 打赏
  • 举报
回复
解决方法:开始-> 所有程序-> Ms Sql Server-> 配置工具-> sql server外围应用配置器-> 服务和连接的外围应用配置器-> 打开MSSQLSERVER节点下的Database Engine 节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named pipes ",确定后,重启数据库服务就可以了.
sprc_lcl 2010-05-05
  • 打赏
  • 举报
回复
sql = @"Server=ip;initial catalog=数据库名;integrated security=true";

红色改为:
Server=.
或Server=(local)
或Server=localhost
试试

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧