远程SQL Server的ConnectionString

时间:2015-05-04 12:33:37

标签: c# asp.net sql-server connection-string

就是这样,我想连接到位于远程服务器上的SQL2008R2,我可以远程进入服务器,在我登录作为管理员在Windows上我处理SQL服务器MS(与SQL的连接是通过Windows身份验证)。

我正在开发一个需要与SQL连接的WinForms应用程序,我尝试了几个connectionString但没有成功,例如:

public static string strCon = @"Server=190.xxx.xxx.xxx\ServerName,1433;Database=DataBaseName;Integrated Security=false;User ID=User;Password=Pass";

public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Network Library=DBMSSOCN;Initial Catalog=DataBaseName;User ID=User;Password=Pass;

我错过了什么吗?在尝试连接之前,我应该做些别的事吗?

我认为我的Windows身份验证事情一团糟,我可以绕过它并直接连接到SQL吗?

请注意,在服务器上启用了远程连接,我检查了端口为1433。

编辑:

当我找到一个解决方案时,我找到了this question,我意识到当我远程连接到服务器时,我使用了一个端口(190.xxx.xxx.xxx:yyyy)。我的问题就在那里,不是吗?

EDIT2:       我的解决方案:我使用的connectionString没问题,问题是端口。我为我的办公室IP打开了它,而且每件事都像魅力一样。

3 个答案:

答案 0 :(得分:2)

我强烈建议你使用SqlConnectionStringBuilder类,它允许你通过属性配置连接字符串,并保证创建有效的连接字符串。

像这样使用:

SqlConnectionStringBuilder b = new SqlConnectionStringBuilder();
b.DataSource = "190.xxx.xxx.xxx\ServerName";
b.InitialCatalog = "DataBaseName";
b.IntegratedSecurity = false;
b.UserId = "...";
b.Password = "...";

string connectionString = b.ConnectionString;

答案 1 :(得分:1)

如果您想使用 Windows身份验证进行连接,则应该使用:

public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Database=DataBaseName;Integrated Security=True";

另请注意,1433是默认的sql端口,因此您无需指定它。 你可以写:

public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName;Database=DataBaseName;Integrated Security=True";

在这种情况下,不应指定User NamePassword,因为它将使用您当前会话的Windows帐户。

您可以找到有关SQL Server连接字符串here

的更多详细信息

答案 2 :(得分:1)

如果要连接用户ID和密码

,则忘记了IntegratedSecurity属性
public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Network Library=DBMSSOCN;Initial Catalog=DataBaseName;Integrated Security=False;User ID=User;Password=Pass;

否则:

public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Network Library=DBMSSOCN;Initial Catalog=DataBaseName;Integrated Security=True;