使用 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;";
将<ServerName>
和所有其他人替换为您拥有的信息。如果服务器有实例名称,那么您将需要在 <ServerName>
中使用它。结果将类似于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# winform程序怎么连接到本地sqlserver 数据库啊