using System;
using System.Collections.Generic;
using System.Data;
using System.Linq.Expressions;
using SqlSugar;
namespace Mtxfw.Utility.DataAccess
{
///
/// DataTable类
///
public partial class Sql : DbHelperSqlSugar
{
///
/// 通过SQL语句获取DataSet
///
/// sql -> select * from table where id=@id and name=@name
/// 参数 -> new {id=1,name="a"}
/// 返回DataSet数据
public DataTable GetDataTable(string sql, object parameters)
{
return Db.Ado.GetDataTable(sql, parameters);
}
///
/// 通过SQL语句获取DataSet
///
/// sql -> select * from table where id=@id and name=@name
///
/// 参数 -> new SugarParameter("@id",1),
/// 多个参数 -> new SugarParameter []{ new SugarParameter("@id",1), new SugarParameter("@name",2)}
///
/// 返回DataSet数据
public DataTable GetDataTable(string sql, params SugarParameter[] parameters)
{
return Db.Ado.GetDataTable(sql, parameters);
}
///
/// 通过SQL语句获取DataSet
///
/// sql -> select * from table where id=@id and name=@name
///
/// 多个参数 -> new List(){ new SugarParameter("@id",1), new SugarParameter("@name",2) }
///
/// 返回DataSet数据
public DataTable GetDataTable(string sql, List parameters)
{
return Db.Ado.GetDataTable(sql, parameters);
}
///
/// 通过SQL语句获取DataTable(带分页)
///
///
/// 当前页
/// 每页显示条数
/// 排序
///
public DataTable GetDataTable(string sql, int page, int pageSize, string orderBy)
{
int recordCount = Db.Ado.GetInt(PagingHelper.CreateCountingSql(sql));
return Db.Ado.GetDataTable(PagingHelper.CreatePagingSql(recordCount, pageSize, page, sql, orderBy));
}
///
/// 通过SQL语句获取DataTable(带分页)
///
/// 当前页
/// 每页显示条数
/// 排序
/// 总记录数 返回值
public DataTable GetDataTable(string sql, int page, int pageSize, string orderBy, out int recordCount)
{
recordCount = Db.Ado.GetInt(PagingHelper.CreateCountingSql(sql));
return Db.Ado.GetDataTable(PagingHelper.CreatePagingSql(recordCount, pageSize, page, sql, orderBy));
}
///
/// 查询数据
///
///
///
///
public DataTable FindToDataTable(Expression> predicate, string orderBy = "") where T : class, new()
{
return Db.Queryable().Where(predicate).OrderByIF(!string.IsNullOrEmpty(orderBy), orderBy).ToDataTable();
}
///
/// 查询数据
///
///
///
///
public DataTable FindToDataTable(string strWhere, string orderBy = "") where T : class, new()
{
return Db.Queryable().Where(strWhere).OrderByIF(!string.IsNullOrEmpty(orderBy), orderBy).ToDataTable();
}
///
/// 查询数据
///
///
///
///
public DataTable FindToDataTableByWhere(string strWhere = "", string orderBy = "") where T : class, new()
{
return Db.Queryable().WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).OrderByIF(!string.IsNullOrEmpty(orderBy), orderBy).ToDataTable();
}
///
/// 分页查询
///
///
///
///
///
///
///
///
public DataTable FindToDataTablePage(int pageIndex, int pageSize, Expression> predicate, string orderBy, ref int records) where T : class, new()
{
int count = GetCount(predicate);
var page = Db.Queryable().Where(predicate).OrderBy(orderBy).ToDataTablePage(pageIndex, pageSize, ref records);
return page;
}
}
}