在C#中,为了提高SQLHelper代码的复用性,可以采取以下几种方法:
public abstract class BaseSqlHelper
{
public int ExecuteNonQuery(string connectionString, string sql)
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var command = new SqlCommand(sql, connection))
{
return command.ExecuteNonQuery();
}
}
}
// 其他通用方法的实现...
}
public class GenericSqlHelper<T> : BaseSqlHelper where T : DbConnection
{
private readonly string _connectionString;
public GenericSqlHelper(string connectionString)
{
_connectionString = connectionString;
}
// 使用泛型方法,例如:
public T ExecuteNonQuery<T>(string sql) where T : DbConnection
{
using (var connection = new T(_connectionString))
{
connection.Open();
using (var command = new SqlCommand(sql, connection))
{
return command.ExecuteNonQuery<T>();
}
}
}
}
public interface ISqlHelper
{
int ExecuteNonQuery(string connectionString, string sql);
// 其他数据库操作方法的接口...
}
public class SqlHelper : ISqlHelper
{
public int ExecuteNonQuery(string connectionString, string sql)
{
// 实现方法...
}
}
在程序中使用依赖注入:
public class MyService
{
private readonly ISqlHelper _sqlHelper;
public MyService(ISqlHelper sqlHelper)
{
_sqlHelper = sqlHelper;
}
// 使用_sqlHelper进行数据库操作...
}
<!-- appsettings.json -->
{
"ConnectionStrings": {
"MyConnectionString": "your_connection_string_here"
}
}
在程序中使用配置文件中的连接字符串:
public class MyService
{
private readonly ISqlHelper _sqlHelper;
public MyService()
{
var connectionString = Configuration.GetConnectionString("MyConnectionString");
_sqlHelper = new SqlHelper(connectionString);
}
// 使用_sqlHelper进行数据库操作...
}
通过以上方法,可以有效地提高C# SQLHelper代码的复用性,使代码更加简洁、可维护和可扩展。