急:有谁做过或试验过连接远程SQL6.5服务器成功的,无论用何种方式(在以C#中),请进来看看,up有分。

时间:2022-10-12 06:30:13
我用了SQLOLEDB和ODBC.NET两种方法都试过了,连接本地sql6.5服务器均无问题,介远程服务器均报:SQL Server 不存在或访问被拒绝,请看连接字符串:
sqloledb:   source="Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;password=;Data Source=ruanwenhua;Initial Catalog=HTFS;Connect Timeout=120";OleDbConnection conn = new OleDbConnection(source);

odbc.net:   OdbcConnection myConnection = new OdbcConnection("Dsn=myserver;Uid=sa;Pwd=;");   
其中,odbc.net已经在odbc数据源中设好了DSN。
哪位有成功连接成功过远程sql6.5数据库的,请将连接方法贴一下,我前面还有一个贴子,分都给您了。分不够再加。

16 个解决方案

#1


这样试试
sqlconnection sqlconn=new sqlconnection("server=ip;userid=sa;pwd=;database=pubs");
sqlconn.open();

#2


sqlcilent只能用于sql7.0版本以上的数据库,6.5以前的只能用oledb或odbc.net。(msdn)
还是谢了。

#3


try:
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=northwind;Data Source=mo_china
我测试通过.

你可以案这样的方法试试:
1.建立一个文件connection.udl在桌面.
2.双击该文件,运行.
3.建立你所需要的连接,并测试.
4.用文本编辑器打开该文件,将字符串拷贝到你的代码中.


ODBC.NET没安装.

#4


up

#5


up

#6


to;leimin(黄山光明顶)
   你的两种方法我都试过了,是在最干净的环境下,除了生成的代码外,只有:
string source;
source= @"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=htfs;Data Source=ruanwenhua";
OleDbConnection conn = new OleDbConnection(source);
conn.Open();
两种方法都在conn.Open()时报数据库不存在或访问被拒绝。不知你是在什么环境下测试成功的,我的环境是:SQL6.5+C#+win2k,而且必须是远程访问(本地数据库我试了都没有问题),其中,SQL6.5还打了sp5 补丁。我知道现在用这种搭配的情况极少,但这是我目前项目的需要,而且从MSDN看来这是可以的。希望你继续支持。

#7


哈哈,这个问题 lxqlogo0(群子) 无意中帮我解决了:http://expert.csdn.net/Expert/topic/1119/1119267.xml?temp=.5610163,方法其实很简单:在连接字串中加:Network Library=DBMSSOCN即可连接远程SQL6.5数据库:source= @"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=htfs;Data Source=ruanwenhua;Network Library=DBMSSOCN";,我也是无意中看见了他的帖子。 lxqlogo0(群子)快来,我给你加分。多谢了。

#8


用IP地址,不能用名称。

#9


用名称是可以的,我在我的程序中已经通过了。我想这可以在数据据库中设置,在网络设置中有:“namepiped、TCP\IP等等”,我想只要设置允许命名管道访问应该就可以了。

#10


TO:yigeyigeyige(怡戈)
sorry,我没看清帖子,我也只在本地测试通过,下面是MSDN的解释,希望对你有帮助:
By default, SQL Server will listen for incoming connections made by Named Pipes clients. Named Pipes is the default IPC mechanism for clients to connect to a SQL Server version 4.2, 6.0, and 6.5 server. The Named Pipes DLL is Dbnmpntw.dll, and it should be located in the Windows\System or Winnt\System32 directory. The TCP/IP sockets netlib DLL is Dbmssocn.dll, and also should be in the Windows\System or Winnt\System32 directory.The most common resolution to this problem is to configure the client computer to connect using Named Pipes. 

#11


up

#12


to: leimin(黄山光明顶) 
  多谢你的解释。我的问题暂时算解决了,但只是在表层上解决,并没有找出问题的根源。待我手头的东西做完后,再好好研究一下,本来用named pipes是应该没有问题的,看来还是和服务器及本地机器的设置有关。

#13


UP!

#14


手工启动SQLSERVERAGENT服务,,,, 多次刷新服务

#15


待lxqlogo0(群子)到来后即结帖。

#16


lxqlogo0不来,不等了,结帖。

#1


这样试试
sqlconnection sqlconn=new sqlconnection("server=ip;userid=sa;pwd=;database=pubs");
sqlconn.open();

#2


sqlcilent只能用于sql7.0版本以上的数据库,6.5以前的只能用oledb或odbc.net。(msdn)
还是谢了。

#3


try:
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=northwind;Data Source=mo_china
我测试通过.

你可以案这样的方法试试:
1.建立一个文件connection.udl在桌面.
2.双击该文件,运行.
3.建立你所需要的连接,并测试.
4.用文本编辑器打开该文件,将字符串拷贝到你的代码中.


ODBC.NET没安装.

#4


up

#5


up

#6


to;leimin(黄山光明顶)
   你的两种方法我都试过了,是在最干净的环境下,除了生成的代码外,只有:
string source;
source= @"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=htfs;Data Source=ruanwenhua";
OleDbConnection conn = new OleDbConnection(source);
conn.Open();
两种方法都在conn.Open()时报数据库不存在或访问被拒绝。不知你是在什么环境下测试成功的,我的环境是:SQL6.5+C#+win2k,而且必须是远程访问(本地数据库我试了都没有问题),其中,SQL6.5还打了sp5 补丁。我知道现在用这种搭配的情况极少,但这是我目前项目的需要,而且从MSDN看来这是可以的。希望你继续支持。

#7


哈哈,这个问题 lxqlogo0(群子) 无意中帮我解决了:http://expert.csdn.net/Expert/topic/1119/1119267.xml?temp=.5610163,方法其实很简单:在连接字串中加:Network Library=DBMSSOCN即可连接远程SQL6.5数据库:source= @"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=htfs;Data Source=ruanwenhua;Network Library=DBMSSOCN";,我也是无意中看见了他的帖子。 lxqlogo0(群子)快来,我给你加分。多谢了。

#8


用IP地址,不能用名称。

#9


用名称是可以的,我在我的程序中已经通过了。我想这可以在数据据库中设置,在网络设置中有:“namepiped、TCP\IP等等”,我想只要设置允许命名管道访问应该就可以了。

#10


TO:yigeyigeyige(怡戈)
sorry,我没看清帖子,我也只在本地测试通过,下面是MSDN的解释,希望对你有帮助:
By default, SQL Server will listen for incoming connections made by Named Pipes clients. Named Pipes is the default IPC mechanism for clients to connect to a SQL Server version 4.2, 6.0, and 6.5 server. The Named Pipes DLL is Dbnmpntw.dll, and it should be located in the Windows\System or Winnt\System32 directory. The TCP/IP sockets netlib DLL is Dbmssocn.dll, and also should be in the Windows\System or Winnt\System32 directory.The most common resolution to this problem is to configure the client computer to connect using Named Pipes. 

#11


up

#12


to: leimin(黄山光明顶) 
  多谢你的解释。我的问题暂时算解决了,但只是在表层上解决,并没有找出问题的根源。待我手头的东西做完后,再好好研究一下,本来用named pipes是应该没有问题的,看来还是和服务器及本地机器的设置有关。

#13


UP!

#14


手工启动SQLSERVERAGENT服务,,,, 多次刷新服务

#15


待lxqlogo0(群子)到来后即结帖。

#16


lxqlogo0不来,不等了,结帖。