c#数据库连接工具类
时间: 2024-12-02 20:12:19 浏览: 16
在C#中,创建一个数据库连接通用类的主要目的是为了抽象和标准化数据库访问,使得代码更加模块化和易于管理。下面是一个基本的C#数据库连接工具类的示例[^1]:
```csharp
public class DatabaseConnection
{
private readonly string _connectionString;
private SqlConnection _connection;
// 构造函数,传入数据库连接字符串
public DatabaseConnection(string connectionString)
{
_connectionString = connectionString;
}
// 连接到数据库
public async Task Connect()
{
_connection = new SqlConnection(_connectionString);
await _connection.OpenAsync();
}
// 执行查询
public async Task<List<T>> ExecuteQuery<T>(string query)
{
var result = new List<T>();
using (var command = new SqlCommand(query, _connection))
{
using (var reader = await command.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
{
result.Add(await readerToObject<T>(reader));
}
}
}
return result;
}
// 关闭连接
public void CloseConnection()
{
if (_connection != null && _connection.State == ConnectionState.Open)
{
_connection.Close();
}
}
// 私有方法,将DbDataReader转换为指定类型的对象
private static async Task<T> readerToObject<T>(DbDataReader reader)
{
var instance = Activator.CreateInstance<T>();
foreach (var property in typeof(T).GetProperties())
{
if (property.CanRead && property.GetIndexParameters().Length == 0)
{
property.SetValue(instance, reader[property.Name]);
}
}
return instance;
}
}
```
使用这个类时,开发者只需实例化它,传递数据库连接字符串,然后调用`Connect()`方法打开连接,执行查询,最后记得关闭连接。这样就避免了频繁地手动编写连接和断开的代码,提高了代码的整洁度。
阅读全文