/// <summary> /// 列表查询(单表) /// </summary> /// <param name="dbConnectionString"></param> /// <param name="param"></param> /// <param name="dp"></param> /// <returns></returns> public List <T> List(string dbConnectionString, Dictionary <string, object> param, DataPage dp = null) { var sql = new T().GetSelectSql(); Dictionary <string, object> newParam = new Dictionary <string, object>(); if (param != null && param.Count > 0) { sql += " where 1=1 "; int index = 0; foreach (var paramItem in param) { var par = GetCondition(paramItem.Key); var paramName = "@Param" + ++index; sql += string.Format(" and {0} {1} {2}", par.Item2, par.Item1, paramName); newParam.Add(paramName, paramItem.Value); } } FrameWorkItem item = new FrameWorkItem { Sql = sql, SqlParam = newParam, ConnectionString = dbConnectionString }; return(SelectList <T>(item, dp)); }
/// <summary> /// 查询单个实体 /// </summary> /// <param name="item">框架实体</param> /// <returns>单个对象</returns> public T SelectModel(FrameWorkItem item) { try { var sql = DalAid.CreatePageQuerySql(item.Sql, null, dbType); using (var connection = GetDbConnection(item.ConnectionString)) { using (var cmd = GetDbCommand(sql, connection, item.SqlParam)) { using (IDataReader dr = cmd.ExecuteReader()) { if (dr != null && dr.Read()) { return(DynamicBuilderEntity <T> .CreateBuilder(dr).Build(dr)); } } } } } catch (Exception ex) { throw ex; } finally { } return(default(T)); }
/// <summary> /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略额外的列或行。 /// </summary> /// <param name="item">参数</param> /// <returns>结果</returns> public object ExecuteScalar(FrameWorkItem item, bool isAdd = false) { object result = null; try { using (var connection = GetDbConnection(item.ConnectionString)) { using (var cmd = GetDbCommand(item.Sql, connection, item.SqlParam)) { if (cmd != null) { if (isAdd) { cmd.CommandText += GetIdentitySql(); } result = cmd.ExecuteScalar(); } } } } catch (Exception ex) { throw new Exception(ex.Message + "\r\n" + item.Sql); } return(result); }
/// <summary> /// 查询表格数据 /// </summary> /// <param name="item">框架实体</param> /// <param name="dp">分页对象</param> /// <returns></returns> public DataTable SelectDataTable(FrameWorkItem item, DataPage dp = null) { DataTable result = new DataTable(); try { var sql = DalAid.CreatePageQuerySql(item.Sql, dp, dbType); using (var connection = GetDbConnection(item.ConnectionString)) { using (var cmd = GetDbCommand(sql, connection, item.SqlParam)) { using (IDataReader dr = cmd.ExecuteReader()) { var datasSet = dr.ToDataSet(); if (datasSet.Tables.Count > 0) { result = datasSet.Tables[0]; } return(result); } } } } catch (Exception ex) { throw ex; } finally { } }
/// <summary> /// 查询集合,带分页 /// </summary> /// <param name="item">框架实体</param> /// <param name="isAutoParam">是否自动匹配参数</param> /// <param name="dp">分页对象</param> /// <returns>对象集合</returns> public List <To> SelectList <To>(FrameWorkItem item, DataPage dp = null, bool isAutoParam = false) where To : new() { try { var sql = DalAid.CreatePageQuerySql(item.Sql, dp, dbType); var param = item.SqlParam; if (isAutoParam) { var where = GetWhere(item.SqlParam); sql += where.Item1; param = where.Item2; } using (var connection = GetDbConnection(item.ConnectionString)) { using (var cmd = GetDbCommand(sql, connection, param)) { using (IDataReader dr = cmd.ExecuteReader()) { List <To> list = new List <To>(); if (dp != null && dp.PageSize > 0) { int result = GetResult <int>(string.Format("SELECT COUNT(1) FROM ({0}) a", item.Sql), item.ConnectionString, item.SqlParam); dp.RowCount = result; } var builders = DynamicBuilderEntity <To> .CreateBuilder(dr); while (dr != null && dr.Read()) { To tempT = new To(); tempT = builders.Build(dr); list.Add(tempT); } return(list); } } } } catch (Exception ex) { throw ex; } finally { } }