在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代码的复用性,使代码更加简洁、可维护和可扩展。