2015-05-26 35 views
0

我想用我的C#程序连接到我的服务器上的数据库,并且连接保持超时。我的连接字符串是:用C连接到服务器上的SQL Server数据库#

string MyConnection = @"Data Source=YJN-DC-SQLEXPRESS;Initial Catalog=Test; Integrated Security = SSPI; User ID= username; Password=password;"; 

SQL Server确实允许远程连接。我没有声望发布图像,所以这里是它的链接http://imgur.com/0CDBg5q这是我得到的错误消息。我正在使用Visual Studio 2012

+6

也许连接字符串应该是这样的:'@“数据源= YJN-DC \ SQLEXPRESS ......'你需要的计算机名之间的反斜杠和SQLEXPRESS实例名称 – Steve

+5

此外,您应该使用“集成安全性= SSPI”(Windows身份验证)或“用户ID =用户名;密码=密码”(SQL身份验证),而不是两者都是 – dotnetom

+0

[差异集成安全性= True和集成安全= SSPI](http://stackoverflow.com/questions/1229691/) – Steve

回答

0

您需要确保连接字符串是正确的。对于初学者,因为dotnetom指出您需要使用集成安全性(Windows身份验证)或用户标识和密码,而不是两者。

下面是关于建立连接字符串的一些很好的信息,但我会给你所需的基础知识。 https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

如果你想使用一个用户名和密码,那么你就需要使用:

String MyConnection = @"Data Source=<ServerName>;InitialCatalog=<DatabaseName>;User ID=<UserName>;Password=<Password>;"; 

,如果你想使用集成安全性(Windows身份验证),那么你就需要使用:

String MyConnection = @"Data Source=<ServerName>;InitialCatalog=<DatabaseName>;Integrated Security=True;"; 

你所拥有的信息替换<ServerName>和所有其他人。如果服务器有一个实例名称,那么您需要在<ServerName>。结果将类似于ServerName\InstanceName。只要您使用Windows身份验证进行身份验证,那么您应该可以使用Integrated Security=True并且没问题。

如果您确实需要增加超时时间,您可以通过添加连接超时来实现:Connection Timeout=30。连接超时以秒为单位。

如果您有Microsoft SQL Server Management Studio,我强烈建议您确保您的凭证可以与相关服务器一起使用。试用用户名/密码组合或集成安全性。

编辑: 要回答你关于它是否Password= PasswordPassword=Password的问题,你应该去的第二个选项,并删除之间的空间。我相信另一种方式仍然可以工作,只是没有空间就简洁一点。

这是另一个伟大的网站与例如连接字符串:Example Connection Strings

相关问题