数据库链接c#代码sql sever
时间: 2025-01-02 08:41:45 浏览: 8
### C# 连接 SQL Server 数据库
为了实现 C# 应用程序与 SQL Server 数据库之间的通信,可以采用多种方式建立连接。以下是几种常见的方法。
#### 使用 `SqlConnection` 和字符串构建器
当使用 `SqlConnectionStringBuilder` 来配置连接参数时,因为其并非直接作为字符串处理,所以在创建 `SqlConnection` 对象之前需调用 `.ToString()` 方法将其转换成字符串形式[^1]:
```csharp
using System;
using System.Data.SqlClient;
class Program {
static void Main(string[] args) {
var scsb = new SqlConnectionStringBuilder();
scsb.DataSource = "your_server_name";
scsb.InitialCatalog = "your_database_name";
scsb.UserID = "username";
scsb.Password = "password";
using (SqlConnection sqlCon = new SqlConnection(scsb.ToString())) { // 将 SqlClient.SqlConnectionStringBuilder 转换成字符串并初始化 SqlConnection
try {
sqlCon.Open(); // 建立到数据库的实际链接
Console.WriteLine("Connection opened successfully.");
} catch (Exception ex) {
Console.WriteLine($"Error opening connection: {ex.Message}");
}
}
}
}
```
#### Windows 验证模式下的连接
如果倾向于利用操作系统级别的账户来进行身份验证,则可以选择不指定用户名和密码而启用集成安全性设置。这种方式通常更适用于企业内部网络环境中的应用程序开发[^2]:
```csharp
using System;
using System.Data.SqlClient;
public class DatabaseConnector {
private readonly string _connectionString =
@"Data Source=localhost; Initial Catalog=YourDatabaseNameHere; Integrated Security=true";
public void ConnectToDatabase() {
using (var conn = new SqlConnection(_connectionString)) {
try {
conn.Open();
Console.WriteLine("Connected to database via Windows Authentication");
} catch (Exception e) {
Console.WriteLine(e);
throw;
}
}
}
}
```
#### 完整的连接函数定义
这里提供了一个更为全面的例子来展示如何封装一个用于获取数据库连接的方法,并包含了错误处理逻辑以及资源释放机制[^3]:
```csharp
using System;
using System.Data.SqlClient;
public class DbHelper {
private SqlConnection _sc;
/// <summary>
/// 获取已打开状态的SQL Server数据库连接实例.
/// </summary>
/// <returns>返回已经成功建立了连接的对象.</returns>
public SqlConnection GetOpenConnection() {
string connectionString = @"Data Source=(local)\SQLEXPRESS;Initial Catalog=TestDB;User ID=sa;Password=your_password_here";
_sc = new SqlConnection(connectionString);
try {
_sc.Open();
} catch (Exception ex) when (_sc != null && !_sc.State.HasFlag(System.Data.ConnectionState.Open)) {
Console.Error.WriteLine($"Failed to open the connection due to error:{Environment.NewLine}{ex.Message}");
if (_sc?.State == System.Data.ConnectionState.Connecting)
_sc.Dispose();
throw;
}
return _sc;
}
}
```
阅读全文