使用 C# 连接到服务器上的 SQL Server 数据库

Posted

技术标签:

【中文标题】使用 C# 连接到服务器上的 SQL Server 数据库【英文标题】:Connecting to SQL Server database on a server with C# 【发布时间】:2015-05-26 18:13:42 【问题描述】:

我正在尝试使用我的 C# 程序连接到服务器上的数据库,但连接一直超时。我的连接字符串是:

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

【问题讨论】:

可能连接字符串应该是这样的:@"Data Source=YJN-DC\SQLEXPRESS... 你需要在计算机名和 SQLEXPRESS 实例名之间加一个反斜杠 另外,您应该使用Integrated Security=SSPI(Windows 身份验证)或User ID= username; Password= password(SQL 身份验证),而不是两者都使用 Difference between Integrated Security = True and Integrated Security = SSPI 如何,我将此标记为已回答?还有1件事,哪个是正确的? “密码=密码”或“密码=密码;” 【参考方案1】:

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

这里有一些关于构建连接字符串的有用信息,但我会为您提供所需的基础知识。 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;";

&lt;ServerName&gt; 和所有其他人替换为您拥有的信息。如果服务器有实例名称,那么您将需要在 &lt;ServerName&gt; 中使用它。结果将类似于ServerName\InstanceName。只要您使用 Windows 身份验证进行身份验证,那么您应该能够使用 Integrated Security=True 并且没问题。

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

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

编辑: 要回答您关于它是 Password= Password 还是 Password=Password 的问题,您应该使用第二个选项并删除它们之间的空格。我认为另一种方式仍然有效,只是没有空格会更简洁一些。

这是另一个带有示例连接字符串的好网站:Example Connection Strings

【讨论】:

以上是关于使用 C# 连接到服务器上的 SQL Server 数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 LINQ to SQL 连接到 SQL Server?

如何使用 C# 和 SQL Server 连接到数据库

c# winform程序怎么连接到本地sqlserver 数据库啊

如何连接到 Parallels VM 上的 SQL Server

在 C# 中连接到 SQL Server 时出现问题

无法通过 Windows 2012 上的系统 dsn 使用 ODBC 连接连接到 SQL Server 2008