在这种情况下,我想连接到位于远程服务器上的SQL2008R2,我可以远程进入服务器,并且在我以管理员身份登录到windows上之后,我在server上工作(到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。
编辑:
在我寻找解决方案时,我找到了这个问题,我意识到当我远程连接到服务器时,我使用了一个端口(190.xxx.xxx.xxx:yyyy)。我的问题就在这里,不是吗?
EDIT2:我的解决方案:我使用的connectionString很好,问题是端口。我打开它是为了我的办公室IP,每件事都很有魅力。
发布于 2015-05-04 12:51:51
我强烈建议您使用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;发布于 2015-05-04 12:38:23
如果您想连接到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 Name和Password,因为它将使用当前会话的Windows帐户。
您可以找到有关Server连接字符串这里的更多详细信息
发布于 2015-05-04 12:39:02
如果要连接用户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;https://stackoverflow.com/questions/30030318
复制相似问题