using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace LYFZ.WeixinServiceDate.StandardInterface
{
///
/// 数据层基础接口
///
public interface IBaseDataLaye
{
#region 属性
///
/// 数据表模型对象
///
object ObjModel { get; }
///
/// 数据表名
///
string TableName { get; set; }
///
/// 数据表字段名字符串,字段名以“,”号分隔
///
string TableFieldNameString { get; set; }
///
/// 数据表字段名数组
///
string[] TableFieldNames { get; }
#endregion
#region 检查记录
///
/// 是否存在该记录
///
bool Exists(int ID);
///
/// 根据筛选条件判断是否存在该记录
///
/// 筛选字段名
/// 筛选值
///
bool Exists(string filterFieldName, object filterValue);
///
/// 判断是否存某个字段
///
/// 列名称
/// 是否存在
bool ColumnExists(string columnName);
#endregion
#region 公共方法
///
/// 获取最大ID()
///
///
int GetMaxID();
///
/// 获取某字段最大值(获取字段必须为数字类型)
///
/// 字段名
///
int GetMaxID(string FieldName);
#endregion
#region 增加数据
///
/// 增加一条数据
///
/// Model对象
/// 忽略字段名列表 字段名之间用“,”号分隔
///
bool Add(object model, string overlookFieldList = "ID");
///
/// 获取更新数据的UpdateCommandInfo对象
///
///
/// 要忽略的字段集合 多个字段名有“,”号分隔
///
object GetAddCommandInfoObject(object model, string overlookFieldList = "ID");
#endregion
#region 删除数据
///
/// 删除一条数据
///
bool Delete(int ID);
///
/// 按ID列表批量删除数据
///
/// ID列表,多个用“,”分隔
bool DeleteList(string idList);
///
/// 批量删除数据
///
/// 筛选字段名
/// 值列表,多个值用“,”分隔,字符串值用“'”号包含
bool DeleteList(string filterFieldName, string valueList);
///
/// 根据筛选字段删除数据
///
/// 筛选值
/// 筛选字段名
/// 筛选SQL运算符
///
bool Delete(object filterValue, string filterFieldName = "ID", string operators = "=");
///
/// 根据where条件删除数据 不建义使用此方法
///
/// Wher条件,不包含“where”关键字
///
bool Delete(string whereStr);
///
/// 根据筛选字段或where条件删除数据
///
/// 筛选字段名
/// 筛选SQL运算符
/// 筛选值
/// Wher条件,传入条件语句时筛选字段无效不建义使用 不包含“where”关键字
///
object GetDeleteCommandInfoObject(string filterFieldName = "ID", string operators = "=", object filterValue = null, string whereStr = null);
#endregion
#region 更新数据
///
/// 更新一条数据
///
/// Model对象
/// 筛选字段名称
/// SQL筛选运算符号
/// 忽略字段名列表 字段名之间用“,”号分隔
///
bool Update(object model, string filterFieldName = "ID", string operators = "=", string overlookFieldList = "ID");
///
/// 根据Wher条件更新数据 不建义使用此方法
///
/// Model对象
/// Wher条件,不包含“where”关键字
/// 忽略字段名列表 字段名之间用“,”号分隔
///
bool Update(object model, string whereStr, string overlookFieldList = "ID");
///
/// 获取更新数据的UpdateCommandInfo对象 根据筛选字段和SQL筛选运算符号更新数据(内部方法)
///
/// Model对象
/// 筛选字段名称
/// 忽略字段名列表 字段名之间用“,”号分隔
/// Wher条件,当指定条件语句时筛选字段设置无效,不包含“where”关键字 不建义使用此参数
///
///
object GetUpdateCommandInfoObject(object model, string filterFieldName = "ID", string operators = "=", string overlookFieldList = "ID", string whereStr = null);
#endregion
#region 查询数据
///
/// 得到一个对象实体
///
object GetModelObject(int ID);
///
/// 得到一个对象实体
///
object DataRowToModelObject(DataRow row);
///
/// 根据筛选条件获取一条数据Model对象
///
/// 筛选条件字段名
/// 值
///
object GetModelObject(string filterFieldName, object filterValue);
///
/// 根据筛选条件获取一条数据Model对象
///
/// 筛选条件字段名
/// 值
/// SQL筛选运算符号
///
object GetModelObject(string filterFieldName, object filterValue, string operators);
///
/// 获取一条数据DataRow对象
///
/// id
///
DataRow GetDataRow(int id);
///
/// 根据筛选条件获取一条数据DataRow对象
///
/// 筛选条件字段名
/// 值
/// 筛选SQL运算符
///
DataRow GetDataRow(string filterFieldName, object filterValue, string operators = "=");
///
/// 根据筛选条件获取一条数据DataRow对象(运算符是“=”)
///
/// 筛选条件字段名
/// 值
///
DataRow GetDataRow(string filterFieldName, object filterValue);
///
/// 得到一个对象实体
///
object DataRowToModel(DataRow row, object model);
///
/// 获得数据列表
///
/// 条件语句 不包含 where 关键字
/// SQL排序 如:id desc
DataSet GetList(string strWhere, string filedOrder = "ID desc");
///
/// 获得前几行数据
///
/// 行数
/// 条件 不包含 where 关键字
/// SQL排序 如:id asc
///
DataSet GetList(int Top, string strWhere, string filedOrder = "ID asc");
///
/// 获得全部数据列表
///
/// SQL排序 如:id desc
DataSet GetAllList(string filedOrder = "ID desc");
#endregion
#region 数据分页
///
/// 获取分页后总页数
///
/// 筛选条件
/// 页面大小
///
int GetByPageCount(string strWhere, int pageSize);
///
/// 获取记录总数
///
int GetRecordCount(string strWhere);
///
/// 分页获取数据列表
///
/// 筛选条件
/// 当前页 不能小于0的整数
/// 页面大小,每页显示条数 不能小于0的整数
/// 排序
///
DataSet GetListByPage(string strWhere, int pageIndex, int pageSize, string orderby = "id desc");
///
/// 分页获取数据列表
///
/// 筛选条件
/// 排序
/// 当前页
/// 页面大小,每页显示条数
/// 返回总页数
///
DataSet GetListByPage(string strWhere, string orderby, int pageIndex, int pageSize, ref int pageCount);
///
/// 分页获取数据列表
///
/// 条件
/// 排序
/// 开始index
/// 结束index
///
DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex);
#endregion
}
}