SQL 连接失败(超时)但在经典 VB6 中有效
SQL Connection fails (timeout) but works in classic VB6
我正在将 VB6 应用程序转换为 .NET
VB6 应用程序可以正常连接到 MS SQL 服务器,并且始终通过 ADODB 连接。我使用连接字符串进行设置。
SQL服务器在网络上,不在本机上。
当我尝试在 .NET(VB 或 C#)中使用相同的连接字符串进行连接时,出现 "timeout expired" 错误。我 return 到我的 VB6 应用程序,它连接得很好。
我无法修改网络设置,因为它不是我的网络。
我使用的 C# 代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
namespace CommandLineApp
{
public class ConnectionDemo
{
public static void Main(string [] args)
{
SqlConnection myConnection = new SqlConnection
(
@"Data Source=192.168.0.5;" +
"Initial Catalog=mydb;" +
"User Id=myid;" +
"Password=mypass;"
);
try
{
myConnection.Open();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
我在连接字符串中尝试了各种不同的方法,包括使用服务器名称,使用 "tcp:,port"。
有趣的是,我无法在 IPv6 上 ping 服务器 ("ping -6 ")
我提醒您,我无法更改网络,因为它不是我的,但是 VB6 代码工作正常。相同的连接字符串。所以我不明白为什么我必须改变网络。
提前致谢。
尝试
OleDbConnection myConnection = new OleDbConnection("Provider=SQLOLEDB; " +
"Data Source=192.168.0.5; " +
"Initial Catalog=mydb; " +
"User Id=myid; " +
"Password=mypass; ");
我正在将 VB6 应用程序转换为 .NET
VB6 应用程序可以正常连接到 MS SQL 服务器,并且始终通过 ADODB 连接。我使用连接字符串进行设置。
SQL服务器在网络上,不在本机上。
当我尝试在 .NET(VB 或 C#)中使用相同的连接字符串进行连接时,出现 "timeout expired" 错误。我 return 到我的 VB6 应用程序,它连接得很好。
我无法修改网络设置,因为它不是我的网络。 我使用的 C# 代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
namespace CommandLineApp
{
public class ConnectionDemo
{
public static void Main(string [] args)
{
SqlConnection myConnection = new SqlConnection
(
@"Data Source=192.168.0.5;" +
"Initial Catalog=mydb;" +
"User Id=myid;" +
"Password=mypass;"
);
try
{
myConnection.Open();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
我在连接字符串中尝试了各种不同的方法,包括使用服务器名称,使用 "tcp:,port"。
有趣的是,我无法在 IPv6 上 ping 服务器 ("ping -6 ")
我提醒您,我无法更改网络,因为它不是我的,但是 VB6 代码工作正常。相同的连接字符串。所以我不明白为什么我必须改变网络。
提前致谢。
尝试
OleDbConnection myConnection = new OleDbConnection("Provider=SQLOLEDB; " +
"Data Source=192.168.0.5; " +
"Initial Catalog=mydb; " +
"User Id=myid; " +
"Password=mypass; ");