2017-07-03 217 views
0

这段代码在Visual Studio 2017和.NET Core v1.1上执行得很好,但连接超时在Visual Studio for Mac上。如何从Visual Studio for Mac连接到远程SQL Server?

using System; 
using System.Data.SqlClient; 
using System.Data; 

namespace test_console_app 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (SqlConnection connection = new SqlConnection(@"Server=xxxx,1433\xxxx;Database=xxxx;User Id=xxxx;Password=xxxx")) 
      { 
       using (SqlCommand command = new SqlCommand("Select * from UserAccounts", connection)) 
       { 
        connection.Open(); 
        SqlDataReader reader = command.ExecuteReader(); 
        while (reader.Read()) 
        { 
         Console.WriteLine(((IDataRecord)reader)[1]); 
        } 
       } 
      } 
     } 
    } 
} 

时引发的例外是:

“System.Data.SqlClient.SqlException:建立SQL Server的连接时发生网络相关的或特定于实例的错误服务器是(provider:TCP Provider,错误:25 - 连接字符串无效)“

任何人都知道什么是错误的问题可能是?谢谢。

+0

尝试远程登录到该端口上的服务器。它可能是介于两者之间的防火墙而不是代码/ .net问题。 – MindingData

+0

下这个文件可能不会工作,但以防万一?您是否尝试过使用IP地址而不是主机名?我刚刚在整个周末遇到了一些与我的mac无法正确查询DNS相关的麻烦。 – crcrewso

+0

是的,我试过使用ip地址。我有这样的:“服务器= ,1433 \ <服务器实例>”,它适用于Visual Studio 2017.你能解决你的问题? –

回答

0

你可以改变这个SqlConnection(@"Server=xxxx,1433\xxxx;Database=xxxx;User Id=xxxx;Password=xxxx")) 这个SqlConnection(@"Server=xxxx\xxxx,1433;Database=xxxx;User Id=xxxx;Password=xxxx"))

我觉得你把实例名港后,而不是IP。

+0

我已经尝试了格式化连接字符串的许多不同组合,包括你的建议在这里和虚无。。。问题仍然存在=/ –

+0

请仔细检查此问题,可能会对您有所帮助: https://stackoverflow.com/questions/44090015/visual-studio-for-mac-connection-to-remote-ms-sql-server-failed –