帮我写一个链接数据库封装好的类库
时间: 2024-09-15 09:09:26 浏览: 39
一个php数字分页类库.zip
创建一个链接数据库的封装类库,通常会包含以下几个关键部分:
```csharp
using System.Data.SqlClient;
using System.Data;
public class DatabaseWrapper
{
private string connectionString; // 数据库连接字符串
public DatabaseWrapper(string dbConnection)
{
this.connectionString = dbConnection;
}
// 封装的增删改查方法示例
public void ExecuteNonQuery(String sqlCommand)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
SqlCommand command = new SqlCommand(sqlCommand, connection);
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error executing SQL command: " + ex.Message);
}
}
}
public DataTable SelectData(String sqlCommand)
{
DataTable dataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
SqlDataAdapter adapter = new SqlDataAdapter(sqlCommand, connection);
connection.Open();
adapter.Fill(dataTable);
}
catch (Exception ex)
{
Console.WriteLine("Error fetching data: " + ex.Message);
}
}
return dataTable;
}
// 示例:插入数据
public int InsertData(T entity) where T : new()
{
var commandText = "INSERT INTO YourTable (Column1, Column2) VALUES (@Value1, @Value2)";
using (var context = new YourDbContext(connectionString))
{
var insertEntity = Activator.CreateInstance<T>();
context.Set<T>().Add(insertEntity);
context.SaveChanges();
return insertEntity.Id; // 返回新插入记录的ID
}
}
// 更多方法可根据需要添加,如分页查询、事务控制等
}
// 使用示例:
DatabaseWrapper wrapper = new DatabaseWrapper("your_connection_string");
wrapper.ExecuteNonQuery("Your SQL Command Here");
DataTable result = wrapper.SelectData("SELECT * FROM YourTable");
```
这个类库封装了基本的数据库操作,并提供了异常处理机制。`YourDbContext` 需要替换为你实际使用的数据上下文名称,例如 Entity Framework Core 中的 DbContext。注意,为了更健壮地处理数据库操作,通常还会加入错误处理、事务管理以及对数据库配置的依赖注入等功能。
阅读全文