using NFine.Data.Extensions; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NFine.Repository { public class Database : IDatabase, IDisposable { #region 构造函数 public static string connString { get; set; } /// <summary> /// 构造方法 /// </summary> public Database(string connstring) { DbHelper dbhelper = new DbHelper(connstring); } /// <summary> /// 数据库连接对象 /// </summary> private DbConnection dbConnection { get; set; } /// <summary> /// 事务对象 /// </summary> private DbTransaction isOpenTrans { get; set; } /// <summary> /// 是否已在事务之中 /// </summary> public bool inTransaction { get; set; } /// <summary> /// 事务开始 /// </summary> /// <returns></returns> public DbTransaction BeginTrans() { if (!this.inTransaction) { dbConnection = DbFactory.CreateDbConnection(DbHelper.ConnectionString); if (dbConnection.State == ConnectionState.Closed) { dbConnection.Open(); } inTransaction = true; isOpenTrans = dbConnection.BeginTransaction(); } return isOpenTrans; } /// <summary> /// 提交事务 /// </summary> public void Commit() { if (this.inTransaction) { this.inTransaction = false; this.isOpenTrans.Commit(); this.Close(); } } /// <summary> /// 回滚事务 /// </summary> public void Rollback() { if (this.inTransaction) { this.inTransaction = false; this.isOpenTrans.Rollback(); this.Close(); } } /// <summary> /// 关闭数据库连接 /// </summary> public void Close() { if (this.dbConnection != null) { this.dbConnection.Close(); this.dbConnection.Dispose(); } if (this.isOpenTrans != null) { this.isOpenTrans.Dispose(); } this.dbConnection = null; this.isOpenTrans = null; } /// <summary> /// 内存回收 /// </summary> public void Dispose() { if (this.dbConnection != null) { this.dbConnection.Dispose(); } if (this.isOpenTrans != null) { this.isOpenTrans.Dispose(); } } #endregion #region SqlBulkCopy大批量数据插入 /// <summary> /// 大批量数据插入 /// </summary> /// <param name="datatable">资料表</param> /// <returns></returns> public bool BulkInsert(DataTable datatable) { return false; } #endregion #region 执行SQL语句 /// <summary> /// 执行SQL语句 /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public int ExecuteBySql(StringBuilder strSql) { return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString()); } /// <summary> /// 执行SQL语句 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int ExecuteBySql(StringBuilder strSql, DbTransaction isOpenTrans) { return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString()); } /// <summary> /// 执行SQL语句 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public int ExecuteBySql(StringBuilder strSql, DbParameter[] parameters) { return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters); } /// <summary> /// 执行SQL语句 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int ExecuteBySql(StringBuilder strSql, DbParameter[] parameters, DbTransaction isOpenTrans) { return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameters); } #endregion #region 执行存储过程 /// <summary> /// 执行存储过程 /// </summary> /// <param name="procName">存储过程</param> /// <returns></returns> public int ExecuteByProc(string procName) { return DbHelper.ExecuteNonQuery(CommandType.StoredProcedure, procName); } /// <summary> /// 执行存储过程 /// </summary> /// <param name="procName">存储过程</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int ExecuteByProc(string procName, DbTransaction isOpenTrans) { return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.StoredProcedure, procName); } /// <summary> /// 执行存储过程 /// </summary> /// <param name="procName">存储过程</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public int ExecuteByProc(string procName, DbParameter[] parameters) { return DbHelper.ExecuteNonQuery(CommandType.StoredProcedure, procName, parameters); } /// <summary> /// 执行存储过程 /// </summary> /// <param name="procName">存储过程</param> /// <param name="parameters">sql语句对应参数</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int ExecuteByProc(string procName, DbParameter[] parameters, DbTransaction isOpenTrans) { return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.StoredProcedure, procName, parameters); } #endregion #region 插入数据 /// <summary> /// 插入数据 /// </summary> /// <param name="entity">实体类对象</param> /// <returns></returns> public int Insert<T>(T entity) { object val = 0; StringBuilder strSql = DatabaseCommon.InsertSql<T>(entity); DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity); val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } /// <summary> /// 插入数据 /// </summary> /// <param name="entity">实体类对象</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Insert<T>(T entity, DbTransaction isOpenTrans) { object val = 0; StringBuilder strSql = DatabaseCommon.InsertSql<T>(entity); DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity); val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } /// <summary> /// 批量插入数据 /// </summary> /// <param name="entity">实体类对象</param> /// <returns></returns> public int Insert<T>(List<T> entity) { object val = 0; DbTransaction isOpenTrans = this.BeginTrans(); try { foreach (var item in entity) { this.Insert<T>(item, isOpenTrans); } this.Commit(); val = 1; } catch (Exception ex) { this.Rollback(); this.Close(); val = -1; throw ex; } return Convert.ToInt32(val); } /// <summary> /// 批量插入数据 /// </summary> /// <param name="entity">实体类对象</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Insert<T>(List<T> entity, DbTransaction isOpenTrans) { object val = 0; try { foreach (var item in entity) { this.Insert<T>(item, isOpenTrans); } val = 1; } catch (Exception ex) { val = -1; throw ex; } return Convert.ToInt32(val); } /// <summary> /// 插入数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="ht">哈希表键值</param> /// <returns></returns> public int Insert(string tableName, Hashtable ht) { object val = 0; StringBuilder strSql = DatabaseCommon.InsertSql(tableName, ht); DbParameter[] parameter = DatabaseCommon.GetParameter(ht); val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } /// <summary> /// 插入数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="ht">哈希表键值</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Insert(string tableName, Hashtable ht, DbTransaction isOpenTrans) { object val = 0; StringBuilder strSql = DatabaseCommon.InsertSql(tableName, ht); DbParameter[] parameter = DatabaseCommon.GetParameter(ht); val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } #endregion #region 修改数据 /// <summary> /// 修改数据 /// </summary> /// <param name="entity">实体对象</param> /// <returns></returns> public int Update<T>(T entity) { object val = 0; StringBuilder strSql = DatabaseCommon.UpdateSql<T>(entity); DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity); val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } /// <summary> /// 修改数据 /// </summary> /// <param name="entity">实体对象</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Update<T>(T entity, DbTransaction isOpenTrans) { object val = 0; StringBuilder strSql = DatabaseCommon.UpdateSql<T>(entity); DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity); val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } /// <summary> /// 修改数据 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public int Update<T>(string propertyName, string propertyValue) { object val = 0; StringBuilder strSql = new StringBuilder(); StringBuilder sb = new StringBuilder(); sb.Append("Update "); sb.Append(typeof(T).Name); sb.Append(" Set "); sb.Append(propertyName); sb.Append("="); sb.Append(DbHelper.DbParmChar + propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); return Convert.ToInt32(val); } /// <summary> /// 修改数据 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Update<T>(string propertyName, string propertyValue, DbTransaction isOpenTrans) { object val = 0; StringBuilder strSql = new StringBuilder(); StringBuilder sb = new StringBuilder(); sb.Append("Update "); sb.Append(typeof(T).Name); sb.Append(" Set "); sb.Append(propertyName); sb.Append("="); sb.Append(DbHelper.DbParmChar + propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); return Convert.ToInt32(val); } /// <summary> /// 批量修改数据 /// </summary> /// <param name="entity">实体对象</param> /// <returns></returns> public int Update<T>(List<T> entity) { object val = 0; DbTransaction isOpenTrans = this.BeginTrans(); try { foreach (var item in entity) { this.Update<T>(item, isOpenTrans); } this.Commit(); val = 1; } catch (Exception ex) { this.Rollback(); this.Close(); val = -1; throw ex; } return Convert.ToInt32(val); } /// <summary> /// 批量修改数据 /// </summary> /// <param name="entity">实体对象</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Update<T>(List<T> entity, DbTransaction isOpenTrans) { object val = 0; try { foreach (var item in entity) { this.Update<T>(item, isOpenTrans); } val = 1; } catch (Exception ex) { val = -1; throw ex; } return Convert.ToInt32(val); } /// <summary> /// 修改数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="ht">哈希表键值</param> /// <param name="propertyName">主键字段</param> /// <returns></returns> public int Update(string tableName, Hashtable ht, string propertyName) { object val = 0; StringBuilder strSql = DatabaseCommon.UpdateSql(tableName, ht, propertyName); DbParameter[] parameter = DatabaseCommon.GetParameter(ht); val = DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } /// <summary> /// 修改数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="ht">哈希表键值</param> /// <param name="propertyName">主键字段</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Update(string tableName, Hashtable ht, string propertyName, DbTransaction isOpenTrans) { object val = 0; StringBuilder strSql = DatabaseCommon.UpdateSql(tableName, ht, propertyName); DbParameter[] parameter = DatabaseCommon.GetParameter(ht); val = DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter); return Convert.ToInt32(val); } #endregion #region 删除数据 /// <summary> /// 删除数据 /// </summary> /// <param name="entity">实体类</param> /// <returns></returns> public int Delete<T>(T entity) { StringBuilder strSql = DatabaseCommon.DeleteSql(entity); DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter); } /// <summary> /// 删除数据 /// </summary> /// <param name="entity">实体类</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete<T>(T entity, DbTransaction isOpenTrans) { StringBuilder strSql = DatabaseCommon.DeleteSql(entity); DbParameter[] parameter = DatabaseCommon.GetParameter<T>(entity); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="propertyValue">主键值</param> /// <returns></returns> public int Delete<T>(object propertyValue) { string tableName = typeof(T).Name;//获取表名 string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键 StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, pkName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue)); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="propertyValue">主键值</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete<T>(object propertyValue, DbTransaction isOpenTrans) { string tableName = typeof(T).Name;//获取表名 string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键 StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, pkName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue)); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public int Delete<T>(string propertyName, string propertyValue) { string tableName = typeof(T).Name;//获取表名 StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete<T>(string propertyName, string propertyValue, DbTransaction isOpenTrans) { string tableName = typeof(T).Name;//获取表名 StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public int Delete(string tableName, string propertyName, string propertyValue) { StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete(string tableName, string propertyName, string propertyValue, DbTransaction isOpenTrans) { StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); } /// <summary> /// 删除数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="ht">键值生成SQL条件</param> /// <returns></returns> public int Delete(string tableName, Hashtable ht) { StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, ht); DbParameter[] parameter = DatabaseCommon.GetParameter(ht); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter); } /// <summary> /// 删除数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="ht">键值生成SQL条件</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete(string tableName, Hashtable ht, DbTransaction isOpenTrans) { StringBuilder strSql = DatabaseCommon.DeleteSql(tableName, ht); DbParameter[] parameter = DatabaseCommon.GetParameter(ht); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter); } /// <summary> /// 批量删除数据 /// </summary> /// <param name="propertyValue">主键值:数组1,2,3,4,5,6.....</param> /// <returns></returns> public int Delete<T>(object[] propertyValue) { string tableName = typeof(T).Name;//获取表名 string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键 StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + pkName + " IN ("); try { IList<DbParameter> parameter = new List<DbParameter>(); int index = 0; string str = DbHelper.DbParmChar + "ID" + index; for (int i = 0; i < (propertyValue.Length - 1); i++) { object obj2 = propertyValue[i]; str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str).Append(","); parameter.Add(DbFactory.CreateDbParameter(str, obj2)); index++; } str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str); parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index])); strSql.Append(")"); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); ; } catch (Exception ex) { throw ex; } } /// <summary> /// 批量删除数据 /// </summary> /// <param name="propertyValue">主键值:数组1,2,3,4,5,6.....</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete<T>(object[] propertyValue, DbTransaction isOpenTrans) { string tableName = typeof(T).Name;//获取表名 string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键 StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN ("); try { IList<DbParameter> parameter = new List<DbParameter>(); int index = 0; string str = DbHelper.DbParmChar + "ID" + index; for (int i = 0; i < (propertyValue.Length - 1); i++) { object obj2 = propertyValue[i]; str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str).Append(","); parameter.Add(DbFactory.CreateDbParameter(str, obj2)); index++; } str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str); parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index])); strSql.Append(")"); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); ; } catch (Exception ex) { throw ex; } } /// <summary> /// 批量删除数据 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param> /// <returns></returns> public int Delete<T>(string propertyName, object[] propertyValue) { string tableName = typeof(T).Name;//获取表名 string pkName = propertyName; StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN ("); try { IList<DbParameter> parameter = new List<DbParameter>(); int index = 0; string str = DbHelper.DbParmChar + "ID" + index; for (int i = 0; i < (propertyValue.Length - 1); i++) { object obj2 = propertyValue[i]; str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str).Append(","); parameter.Add(DbFactory.CreateDbParameter(str, obj2)); index++; } str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str); parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index])); strSql.Append(")"); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); ; } catch (Exception ex) { throw ex; } } /// <summary> /// 批量删除数据 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete<T>(string propertyName, object[] propertyValue, DbTransaction isOpenTrans) { string tableName = typeof(T).Name;//获取表名 string pkName = propertyName; StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN ("); try { IList<DbParameter> parameter = new List<DbParameter>(); int index = 0; string str = DbHelper.DbParmChar + "ID" + index; for (int i = 0; i < (propertyValue.Length - 1); i++) { object obj2 = propertyValue[i]; str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str).Append(","); parameter.Add(DbFactory.CreateDbParameter(str, obj2)); index++; } str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str); parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index])); strSql.Append(")"); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); ; } catch (Exception ex) { throw ex; } } /// <summary> /// 批量删除数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param> /// <returns></returns> public int Delete(string tableName, string propertyName, object[] propertyValue) { string pkName = propertyName; StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN ("); try { IList<DbParameter> parameter = new List<DbParameter>(); int index = 0; string str = DbHelper.DbParmChar + "ID" + index; for (int i = 0; i < (propertyValue.Length - 1); i++) { object obj2 = propertyValue[i]; str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str).Append(","); parameter.Add(DbFactory.CreateDbParameter(str, obj2)); index++; } str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str); parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index])); strSql.Append(")"); return DbHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameter.ToArray()); ; } catch (Exception ex) { throw ex; } } /// <summary> /// 批量删除数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值:数组1,2,3,4,5,6.....</param> /// <param name="isOpenTrans">事务对象</param> /// <returns></returns> public int Delete(string tableName, string propertyName, object[] propertyValue, DbTransaction isOpenTrans) { string pkName = propertyName; StringBuilder strSql = new StringBuilder("DELETE FROM " + tableName + " WHERE " + DbHelper.DbParmChar + pkName + " IN ("); try { IList<DbParameter> parameter = new List<DbParameter>(); int index = 0; string str = DbHelper.DbParmChar + "ID" + index; for (int i = 0; i < (propertyValue.Length - 1); i++) { object obj2 = propertyValue[i]; str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str).Append(","); parameter.Add(DbFactory.CreateDbParameter(str, obj2)); index++; } str = DbHelper.DbParmChar + "ID" + index; strSql.Append(str); parameter.Add(DbFactory.CreateDbParameter(str, propertyValue[index])); strSql.Append(")"); return DbHelper.ExecuteNonQuery(isOpenTrans, CommandType.Text, strSql.ToString(), parameter.ToArray()); ; } catch (Exception ex) { throw ex; } } #endregion #region 查询数据列表、返回List /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="Top">显示条数</param> /// <returns></returns> public List<T> FindListTop<T>(int Top) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="Top">显示条数</param> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public List<T> FindListTop<T>(int Top, string propertyName, string propertyValue) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); strSql.Append(" AND " + propertyName + " = " + DbHelper.DbParmChar + propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="Top">显示条数</param> /// <param name="WhereSql">条件</param> /// <returns></returns> public List<T> FindListTop<T>(int Top, string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="Top">显示条数</param> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public List<T> FindListTop<T>(int Top, string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <returns></returns> public List<T> FindList<T>() where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public List<T> FindList<T>(string propertyName, string propertyValue) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(" AND " + propertyName + " = " + DbHelper.DbParmChar + propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="WhereSql">条件</param> /// <returns></returns> public List<T> FindList<T>(string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public List<T> FindList<T>(string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public List<T> FindListBySql<T>(string strSql) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public List<T> FindListBySql<T>(string strSql, DbParameter[] parameters) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToList<T>(dr); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public List<T> FindListPage<T>(string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); return SqlServerHelper.GetPageList<T>(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="WhereSql">条件</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public List<T> FindListPage<T>(string WhereSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); return SqlServerHelper.GetPageList<T>(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public List<T> FindListPage<T>(string WhereSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); return SqlServerHelper.GetPageList<T>(strSql.ToString(), parameters, orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public List<T> FindListPageBySql<T>(string strSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) { return SqlServerHelper.GetPageList<T>(strSql, orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回List /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public List<T> FindListPageBySql<T>(string strSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) { return SqlServerHelper.GetPageList<T>(strSql, parameters, orderField, orderType, pageIndex, pageSize, ref recordCount); } #endregion #region 查询数据列表、返回DataTable /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="Top">显示条数</param> /// <returns></returns> public DataTable FindTableTop<T>(int Top) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="Top">显示条数</param> /// <param name="WhereSql">条件</param> /// <returns></returns> public DataTable FindTableTop<T>(int Top, string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="Top">显示条数</param> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public DataTable FindTableTop<T>(int Top, string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(Top); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <returns></returns> public DataTable FindTable<T>() where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="WhereSql">条件</param> /// <returns></returns> public DataTable FindTable<T>(string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public DataTable FindTable<T>(string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public DataTable FindTableBySql(string strSql) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public DataTable FindTableBySql(string strSql, DbParameter[] parameters) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public DataTable FindTablePage<T>(string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); return SqlServerHelper.GetPageTable(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="WhereSql">条件</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public DataTable FindTablePage<T>(string WhereSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); return SqlServerHelper.GetPageTable(strSql.ToString(), orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public DataTable FindTablePage<T>(string WhereSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(); strSql.Append(WhereSql); return SqlServerHelper.GetPageTable(strSql.ToString(), parameters, orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public DataTable FindTablePageBySql(string strSql, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) { return SqlServerHelper.GetPageTable(strSql, orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <param name="orderField">排序字段</param> /// <param name="orderType">排序类型</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页大小</param> /// <param name="recordCount">返回查询条数</param> /// <returns></returns> public DataTable FindTablePageBySql(string strSql, DbParameter[] parameters, string orderField, string orderType, int pageIndex, int pageSize, ref int recordCount) { return SqlServerHelper.GetPageTable(strSql, parameters, orderField, orderType, pageIndex, pageSize, ref recordCount); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="procName">存储过程</param> /// <returns></returns> public DataTable FindTableByProc(string procName) { IDataReader dr = DbHelper.ExecuteReader(CommandType.StoredProcedure, procName); return DatabaseReader.ReaderToDataTable(dr); } /// <summary> /// 查询数据列表、返回 DataTable /// </summary> /// <param name="procName">存储过程</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public DataTable FindTableByProc(string procName, DbParameter[] parameters) { IDataReader dr = DbHelper.ExecuteReader(CommandType.StoredProcedure, procName, parameters); return DatabaseReader.ReaderToDataTable(dr); } #endregion #region 查询数据列表、返回DataSet /// <summary> /// 查询数据列表、返回DataSet /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public DataSet FindDataSetBySql(string strSql) { return DbHelper.GetDataSet(CommandType.Text, strSql); } /// <summary> /// 查询数据列表、返回DataSet /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public DataSet FindDataSetBySql(string strSql, DbParameter[] parameters) { return DbHelper.GetDataSet(CommandType.Text, strSql, parameters); } /// <summary> /// 查询数据列表、返回DataSet /// </summary> /// <param name="strSql">存储过程</param> /// <returns></returns> public DataSet FindDataSetByProc(string procName) { return DbHelper.GetDataSet(CommandType.StoredProcedure, procName); } /// <summary> /// 查询数据列表、返回DataSet /// </summary> /// <param name="strSql">存储过程</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public DataSet FindDataSetByProc(string procName, DbParameter[] parameters) { return DbHelper.GetDataSet(CommandType.StoredProcedure, procName, parameters); } #endregion #region 查询对象、返回实体 /// <summary> /// 查询对象、返回实体 /// </summary> /// <param name="propertyValue">主键值</param> /// <returns></returns> public T FindEntity<T>(object propertyValue) where T : new() { string pkName = DatabaseCommon.GetKeyField<T>().ToString();//获取主键字段 StringBuilder strSql = DatabaseCommon.SelectSql<T>(1); strSql.Append(" AND ").Append(pkName).Append("=").Append(DbHelper.DbParmChar + pkName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue)); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray()); return DatabaseReader.ReaderToModel<T>(dr); } /// <summary> /// 查询对象、返回实体 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public T FindEntity<T>(string propertyName, object propertyValue) where T : new() { string pkName = propertyName; StringBuilder strSql = DatabaseCommon.SelectSql<T>(1); strSql.Append(" AND ").Append(pkName).Append("=").Append(DbHelper.DbParmChar + pkName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + pkName, propertyValue)); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray()); return DatabaseReader.ReaderToModel<T>(dr); } /// <summary> /// 查询对象、返回实体 /// </summary> /// <param name="WhereSql">条件</param> /// <returns></returns> public T FindEntityByWhere<T>(string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(1); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToModel<T>(dr); } /// <summary> /// 查询对象、返回实体 /// </summary> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public T FindEntityByWhere<T>(string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectSql<T>(1); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToModel<T>(dr); } /// <summary> /// 查询对象、返回实体 /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public T FindEntityBySql<T>(string strSql) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToModel<T>(dr); } /// <summary> /// 查询对象、返回实体 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public T FindEntityBySql<T>(string strSql, DbParameter[] parameters) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToModel<T>(dr); } #endregion #region 查询对象、返回哈希表 /// <summary> /// 查询对象、返回哈希表 /// </summary> /// <param name="tableName">表名</param> /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// <returns></returns> public Hashtable FindHashtable(string tableName, string propertyName, object propertyValue) { StringBuilder strSql = DatabaseCommon.SelectSql(tableName, 1); strSql.Append(" AND ").Append(propertyName).Append("=").Append(DbHelper.DbParmChar + propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameter.ToArray()); return DatabaseReader.ReaderToHashtable(dr); } /// <summary> /// 查询对象、返回哈希表 /// </summary> /// <param name="tableName">表名</param> /// <param name="WhereSql">条件</param> /// <returns></returns> public Hashtable FindHashtable(string tableName, StringBuilder WhereSql) { StringBuilder strSql = DatabaseCommon.SelectSql(tableName, 1); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToHashtable(dr); } /// <summary> /// 查询对象、返回哈希表 /// </summary> /// <param name="tableName">表名</param> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public Hashtable FindHashtable(string tableName, StringBuilder WhereSql, DbParameter[] parameters) { StringBuilder strSql = DatabaseCommon.SelectSql(tableName, 1); strSql.Append(WhereSql); IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToHashtable(dr); } /// <summary> /// 查询对象、返回哈希表 /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public Hashtable FindHashtableBySql(string strSql) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString()); return DatabaseReader.ReaderToHashtable(dr); } /// <summary> /// 查询对象、返回哈希表 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public Hashtable FindHashtableBySql(string strSql, DbParameter[] parameters) { IDataReader dr = DbHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters); return DatabaseReader.ReaderToHashtable(dr); } #endregion #region 查询数据、返回条数 /// <summary> /// 查询数据、返回条数 /// </summary> /// <returns></returns> public int FindCount<T>() where T : new() { StringBuilder strSql = DatabaseCommon.SelectCountSql<T>(); return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString())); } /// <summary> /// 查询数据、返回条数 /// <param name="propertyName">实体属性名称</param> /// <param name="propertyValue">字段值</param> /// </summary> /// <returns></returns> public int FindCount<T>(string propertyName, string propertyValue) where T : new() { StringBuilder strSql = DatabaseCommon.SelectCountSql<T>(); strSql.Append(" AND " + propertyName + " = " + DbHelper.DbParmChar + propertyName); IList<DbParameter> parameter = new List<DbParameter>(); parameter.Add(DbFactory.CreateDbParameter(DbHelper.DbParmChar + propertyName, propertyValue)); return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString(), parameter.ToArray())); } /// <summary> /// 查询数据、返回条数 /// </summary> /// <param name="WhereSql">条件</param> /// <returns></returns> public int FindCount<T>(string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectCountSql<T>(); strSql.Append(WhereSql); return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString())); } /// <summary> /// 查询数据、返回条数 /// </summary> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public int FindCount<T>(string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectCountSql<T>(); strSql.Append(WhereSql); return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString(), parameters)); } /// <summary> /// 查询数据、返回条数 /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public int FindCountBySql(string strSql) { return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql)); } /// <summary> /// 查询数据、返回条数 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public int FindCountBySql(string strSql, DbParameter[] parameters) { return Convert.ToInt32(DbHelper.ExecuteScalar(CommandType.Text, strSql, parameters)); } #endregion #region 查询数据、返回最大数 /// <summary> /// 查询数据、返回最大数 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <returns></returns> public object FindMax<T>(string propertyName) where T : new() { StringBuilder strSql = DatabaseCommon.SelectMaxSql<T>(propertyName); return DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString()); } /// <summary> /// 查询数据、返回最大数 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="WhereSql">条件</param> /// <returns></returns> public object FindMax<T>(string propertyName, string WhereSql) where T : new() { StringBuilder strSql = DatabaseCommon.SelectMaxSql<T>(propertyName); strSql.Append(WhereSql); return DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString()); } /// <summary> /// 查询数据、返回最大数 /// </summary> /// <param name="propertyName">实体属性名称</param> /// <param name="WhereSql">条件</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public object FindMax<T>(string propertyName, string WhereSql, DbParameter[] parameters) where T : new() { StringBuilder strSql = DatabaseCommon.SelectMaxSql<T>(propertyName); strSql.Append(WhereSql); return DbHelper.ExecuteScalar(CommandType.Text, strSql.ToString(), parameters); } /// <summary> /// 查询数据、返回最大数 /// </summary> /// <param name="strSql">Sql语句</param> /// <returns></returns> public object FindMaxBySql(string strSql) { return DbHelper.ExecuteScalar(CommandType.Text, strSql); } /// <summary> /// 查询数据、返回最大数 /// </summary> /// <param name="strSql">Sql语句</param> /// <param name="parameters">sql语句对应参数</param> /// <returns></returns> public object FindMaxBySql(string strSql, DbParameter[] parameters) { return DbHelper.ExecuteScalar(CommandType.Text, strSql, parameters); } #endregion } }