public List <DynamicEntity> ExecuteList(string sql, object param = null) { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { var cmd = CreateDbCommand(sql, param); if (conn.State != ConnectionState.Open) { conn.Open(); } using (DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { List <DynamicEntity> list = new List <DynamicEntity>(); while (reader.Read()) { var item = new DynamicEntity(); for (var i = 0; i < reader.FieldCount; i++) { item[reader.GetName(i)] = reader[i]; } list.Add(item); } return(list); } } }
/// <summary> /// 执行SQL,返回影响行数 /// </summary> /// <returns></returns> public int ExecuteNoQuery(string sql, object param = null) { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { var comm = CreateDbCommand(sql, param); if (conn.State != ConnectionState.Open) { conn.Open(); } return(comm.ExecuteNonQuery()); } }
/// <summary> /// 返回第一行第一列的值 /// </summary> /// <returns></returns> public T ExecuteScalar <T>(string sql, object param = null) { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { var comm = CreateDbCommand(sql, param); if (conn.State != ConnectionState.Open) { conn.Open(); } return(comm.ExecuteScalar().To <T>()); } }
/// <summary> /// 执行SQL,返回dataSet /// </summary> /// <param name="cmd"></param> /// <returns></returns> public DataSet ExecuteDataSet(string sql, object param = null) { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { var comm = CreateDbCommand(sql, param); if (conn.State != ConnectionState.Open) { conn.Open(); } DbDataAdapter dbDataAdapter = DbProvider.NewAdapter(); dbDataAdapter.SelectCommand = comm; DataSet dataset = new DataSet(); dbDataAdapter.Fill(dataset); return(dataset); } }
/// <summary> /// 执行SQL,返回影响行数 /// </summary> /// <param name="sql"></param> /// <param name="param"></param> /// <returns></returns> public int ExecuteNoQuery(string sql, IEnumerable <object> param) { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { if (conn.State != ConnectionState.Open) { conn.Open(); } int result = 0; foreach (var p in param) { var comm = CreateDbCommand(sql, p); result += comm.ExecuteNonQuery(); } return(result); } }
/// <summary> /// 返回第一行,并转化成实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="cmd"></param> /// <returns></returns> public T ExecuteSingle <T>(string sql, object param = null, Action <T, DbReader> anfterAction = null) where T : class, new() { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { var cmd = CreateDbCommand(sql, param); if (conn.State != ConnectionState.Open) { conn.Open(); } using (DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { reader.Read(); var t = (T)GetEntity(reader, typeof(T)); anfterAction?.Invoke(t, new DbReader(reader)); return(t); } } }
public List <T> ExecuteList <T>(string sql, object param = null, Action <T, DbReader> anfterAction = null) where T : class, new() { using (var context = new SqlExecuteContext(conn, trans, IsStill)) { var list = new List <T>(); var type = typeof(T); var properties = type.GetProperties(); var cmd = CreateDbCommand(sql, param); if (conn.State != ConnectionState.Open) { conn.Open(); } using (DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { while (reader.Read()) { var t = (T)GetEntity(reader, type, properties); anfterAction?.Invoke(t, new DbReader(reader)); list.Add(t); } return(list); } } }