//public IEnumerable<DataRow> AsEnumerable(this DataTable table) //{ // for (int i = 0; i < table.Rows.Count; i++) // { // yield return table.Rows[i]; // } //} //public int insert(string sql) //{ // int ret; // SqlConnection conn = new SqlConnection(sqlconn); // //string sqlq = "INSERT INTO Currencies (name,sym,pref,sfe,rfe,spc,rpc,nonf,memf,sver,rver) "+ // // "VALUES('"+C.name+"','"+C.sym+"')"; // try // { // conn.Open(); // SqlCommand cmd = new SqlCommand(sql, conn); // cmd.ExecuteNonQuery(); // ret = 1; // } // catch (System.Data.SqlClient.SqlException ex) // { // ret = 0; // string msg = "Insert Error:"; // msg += ex.Message; // throw new Exception(msg); // } // finally // { // conn.Close(); // } // return ret; //} //public int update(string sql) //{ // SqlConnection conn = new SqlConnection(sqlconn); // try // { // conn.Open(); // SqlCommand cmd = new SqlCommand(sql, conn); // cmd.ExecuteNonQuery(); // } // catch (System.Data.SqlClient.SqlException ex) // { // string msg = "Update Error:"; // msg += ex.Message; // throw new Exception(msg); // } // finally // { // conn.Close(); // } // return 1; //} //public int Delete(string sql) //{ // SqlConnection conn = new SqlConnection(sqlconn); // try // { // conn.Open(); // SqlCommand cmd = new SqlCommand(sql, conn); // cmd.ExecuteNonQuery(); // } // catch (System.Data.SqlClient.SqlException ex) // { // string msg = "Delete Error:"; // msg += ex.Message; // throw new Exception(msg); // } // finally // { // conn.Close(); // } // return 1; //} public async Task <DRQueRes <T> > GetList <T>(string sql, PageQuery @p = null) { @p.SortBy = (@p.SortBy == "Id") ? "t1.Id" : @p.SortBy; @p.PageSize = (@p.PageSize == 0) ? 10 : @p.PageSize; if ((@p.SearchCol ?? "").Length > 0) { sql += $" AND {@p.SearchCol} LIKE '%{@p.SearchBy}%' "; } string count = sql + ";"; sql += $" ORDER BY {@p.SortBy} {@p.SortDir} LIMIT {@p.PageOff},{@p.PageSize}; "; //List<T> list = new List<T>(); using (IDbConnection con = new MySqlConnection(sqlconn)) { if (con.State == ConnectionState.Closed) { con.Open(); } var multi = await con.QueryMultipleAsync(sql + count); var list = multi.Read <T>().ToList(); int cnt = (list.Count() > 0) ? multi.Read <int>().First() : 0; @p.ResCount = cnt; var ret = new DRQueRes <T>(list, cnt); return(ret); } }
public async Task <DRQueRes <User> > GetList(PageQuery @params) { var query = _context.Users.AsNoTracking(); //.Where(x => x.Status == RecordStatus.ENABLED); if (!string.IsNullOrEmpty(@params.SearchBy)) { query = query.Where($"{@params.SearchCol}.Contains(@0)", @params.SearchBy); } var result = await query.OrderBy($"{@params.SortBy} {@params.SortDir}").Skip(@params.PageOff).Take(@params.PageSize).ToListAsync(); var queres = new DRQueRes <User>(query, result); return(queres); }