C#连接SQL Server需正确使用SqlConnection类及连接字符串,并按项目类型选择System.Data.SqlClient(.NET Framework)或Microsoft.Data.SqlClient(.NET Core+);连接字符串应包含服务器、数据库、认证方式等信息,推荐存于配置文件;必须用using确保资源释放;执行操作需配合SqlCommand与ExecuteScalar/ExecuteNonQuery/SqlDataReader。

用C#连接SQL Server数据库,核心是使用 SqlConnection 类配合正确的连接字符串。只要字符串写对、引用了 System.Data.SqlClient(.NET Framework)或 Microsoft.Data.SqlClient(.NET Core/.NET 5+),就能稳定建立连接。
准备基础依赖
根据你的项目类型选择对应包:
- .NET Framework 项目:默认已含
System.Data.SqlClient,无需额外安装 - .NET Core / .NET 5+ / .NET 6+ 项目:需通过 NuGet 安装 Microsoft.Data.SqlClient(官方推荐,支持最新功能和安全更新)
安装命令(包管理器控制台):
Install-Package Microsoft.Data.SqlClient
写对连接字符串
连接字符串包含服务器地址、数据库名、认证方式等关键信息。常见格式如下:
-
Windows 身份验证(本地开发常用):
"Server=localhost\\SQLEXPRESS;Database=MyDB;Trusted_Connection=true;" -
SQL Server 账户密码登录(生产环境常用):
"Server=192.168.1.100;Database=MyDB;User Id=myuser;Password=mypass;" -
注意端口(非默认1433时要显式指定):
"Server=192.168.1.100,1434;Database=MyDB;..."
建议把连接字符串放在 appsettings.json(.NET Core+)或 App.config(.NET Framework)中统一管理,避免硬编码。
用 using 正确打开和关闭连接
SqlConnection 实现了 IDisposable,必须用 using 确保及时释放资源,防止连接泄漏:
string connStr = "Server=...;Database=...;...";
using (var conn = new SqlConnection(connStr))
{
try
{
conn.Open();
Console.WriteLine("连接成功!");
// 执行查询、增删改等操作
}
catch (SqlException ex)
{
Console.WriteLine($"数据库错误:{ex.Message}");
}
} // 这里自动调用 conn.Close() 和 Dispose()
执行简单查询示例
连接后通常配合 SqlCommand 和 SqlDataReader 或 ExecuteScalar/ExecuteNonQuery 使用:
- 查单个值(如统计数量):
cmd.ExecuteScalar() - 执行增删改:
cmd.ExecuteNonQuery() - 读取多行结果:
cmd.ExecuteReader()配合 while 循环
示例(查用户名):
using (var conn = new SqlConnection(connStr))
{
conn.Open();
using (var cmd = new SqlCommand("SELECT TOP 1 Name FROM Users", conn))
{
var name = cmd.ExecuteScalar();
Console.WriteLine(name?.ToString() ?? "无数据");
}
}
基本上就这些。不复杂但容易忽略细节——比如忘了加 using、连错实例名、防火墙阻断端口、SQL Server 服务没启动,都会导致连接失败。先确保 SQL Server 正在运行、远程连接已启用、账户有权限,再检查代码逻辑。










