2016-11-22 46 views
1

我正在写在Visual Studio C#应用程序2015年无法C#应用程序连接到MSSQL

我试图连接到我曾尝试以下远程(异地)SQL 2008服务器:

远程服务器连接开放

服务器已经没有TCP端口配置..港行是空的。其实防火墙是关闭的。

我可以远程连接(通过远程桌面)并访问给定IP地址上的服务器。

连接字符串 - IP,用户名,密码出于显而易见的原因删除:

private void button2_Click(object sender, EventArgs e) 
    { 
     mssqlConnBtn.Text = "Connecting.."; 
     try 
     { 
      SqlConnection conn = new SqlConnection(); 
      conn.ConnectionString = "Data Source=#.#.#.#\\DC3\\POS,1433;Network Library=DBMSSOCN;Initial Catalog=bDatabase;User ID=[username];Password=[password]"; 
      conn.Open(); 
      mssqlConnBtn.Text = "Connected"; 
     } 
     catch (System.Data.SqlClient.SqlException exsql) 
     { 
      MessageBox.Show(exsql.Message); 
      mssqlConnBtn.Text = "Connect"; 
     } 
    } 

我也曾尝试Data Source=#.#.#.#,1433

错误:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. 

The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. 

(provider: TCP Provider, Error:0 - The wait operation timed out.) 

任何想法吗?

谢谢!

+0

“Visual Basic 2015中的C#应用​​程序” - 我确定应该是Visual Studio 2015? –

+0

您是否使用相同的服务器名称来连接它使用SQL Server Management Studio?如果是,那么只是尝试添加持久安全信息= True;到您的连接字符串 –

+0

@AnkitkumarBhatt是的,我使用相同的连接信息。 conn.ConnectionString =“Data Source =#。#。#。#\\ DC3 \\ POS,1433; Network Library = DBMSSOCN; Persist Security Info = True; I nitial Catalog = bDatabase; User ID = [username]; Password = [password]“;' – hinteractive02

回答

0

不知道为什么你有2个实例名称。请尝试以下操作:

"Data Source=#.#.#.#\InstanceName,1433;Network Library=DBMSSOCN;Initial Catalog=bDatabase;User ID=[username];Password=[password]" 

你可能甚至不需要实例名称 - 如果这是你的默认实例请尝试以下操作:

"Data Source=#.#.#.#,1433;Network Library=DBMSSOCN;Initial Catalog=bDatabase;User ID=[username];Password=[password]" 
+0

这些都不起作用。当我在Management Studio中连接时,使用服务器名称'DC3 \ POS',这会起什么作用? – hinteractive02

+0

如果DC3是您的服务器名称,您也可以尝试“Data Source = DC3 \ POS; Initial Catalog = bDatabase; User ID = [username]; Password = [password]”。 –

+0

这是一个远程服务器。这不会令人遗憾。 – hinteractive02

0

一个好的技巧是创建一个空的文本文件,将其重命名connection.udl,双击它 - > “数据链接属性” 对话框:

Data Link Properties

填写一切&按测试连接,直到它工作。然后按确定

之后,.udl文件将包含您的连接字符串。

0

而不是

conn.ConnectionString = "Data Source=#.#.#.#\\DC3\\POS,1433;Network Library=DBMSSOCN;Initial Catalog=bDatabase;User ID=[username];Password=[password]"; 

尝试

conn.ConnectionString = @"Data Source=#.#.#.#\DC3;Initial Catalog=bDatabase;User ID=[username];Password=[password]"; 

1433是默认端口,可以安全中省略。 如果您使用IP地址,则可以忽略DBMSSOCN。

我认为你的问题是你的实例名称。 AFAIK,实例名称不包含'\'字符,所以“\ DC3 \ POS”在我看来是错误的。

编辑:确认,它是实例字符串。不能包含反斜杠。

来源:https://technet.microsoft.com/en-us/library/ms143744(v=sql.90).aspx

“实例名称不区分大小写

实例名称不能包含词语Default,的MSSQLServer或其他保留关键字如果保留关键字是在实例名称中使用的。会发生错误。

实例名限制为16个字符。

在实例名称的第一个字符必须是字母或下划线(_)。可接受的字母是第由Unicode标准2.0定义,包括拉丁字母a-z和A-Z,以及来自其他语言的字母字符。

后续字符可以是由Unicode标准2.0,基本拉丁文或其他国家脚本中的十进制数字,美元符号($)或下划线(_)定义的字母。

实例名称中不允许使用其他特殊字符的嵌入空格,反斜杠(),逗号(,),冒号(:),分号(;),单引号('),和号( “#&),数字符号(#)或符号(@)。”

+0

感谢您的帮助。不幸的是,我得到错误:'建立到SQL Server的连接时出现网络相关或实例特定的错误。服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 错误定位服务器/实例指定)' – hinteractive02

+0

检查最新编辑,实例名称似乎错误 – bradbury9

+0

感谢您的解释。我试过:'conn.ConnectionString = @“Data Source =#。#。#。#\ DC3; Initial Catalog = bDatabase; User ID = [username]; Password = [password]”;'''conn.ConnectionString = @ “Data Source =#。#。#。#\ POS; Initial Catalog = bDatabase; User ID = [username]; Password = [password]”;'both not working .. hmm .. – hinteractive02

相关问题