SQL数据库抽像工厂类
public abstract class IData { /// <summary> /// 数据库连接字符 /// </summary> public abstract string Connstring { get; set; } /// <summary> /// 根据实体类添加数据 /// </summary> /// <typeparam name="T">实体类Model,类名为表名</typeparam> /// <param name="t">实体类Model实例</param> /// <returns></returns> public abstract int Insert<T>(T t) where T : class; /// <summary> /// 返回根据Insert SQL语句 /// </summary> /// <typeparam name="T">实体类Model,类名为表名</typeparam> /// <param name="t">实体类Model实例</param> /// <returns></returns> public abstract string InsertSql<T>(T t) where T : class; /// <summary> /// 根据实体类添加数据 /// </summary> /// <param name="Data">数据实体类</param> /// <returns></returns> public abstract int Insert(TableModel Data); /// <summary> /// 执行存过程添加数据库 /// </summary> /// <param name="Data">数据实体类</param> /// <returns></returns> public abstract int SproCmd(SqlProModel Data); /// <summary> /// 执行存过程添加数据库 /// </summary> /// <param name="Data">数据实体类</param> /// <param name="OutPut">输出</param> /// <returns></returns> public abstract int SproCmd(SqlProModel Data, ref Hashtable OutPut); /// <summary> /// 根据实体类主键更新数据 /// </summary> /// <typeparam name="T">实体类Model,类名为表名</typeparam> /// <param name="t">实体类Model</param> /// <returns></returns> public abstract int UpDate<T>(T t) where T : class; /// <summary> /// 根据实体类更新数据 /// </summary> /// <typeparam name="T">实体类Model,类名为表名</typeparam> /// <param name="t">实体类Model</param> /// <param name="Dm">条件类Model</param> /// <returns></returns> public abstract int UpDate<T>(T t, WhereColModel[] Dm) where T : class; /// <summary> /// 返回根据实体类 UPDATE SQL /// </summary> /// <typeparam name="T">实体类Model,类名为表名</typeparam> /// <param name="t">实体类Model</param> /// <param name="Dm">条件类Model</param> /// <returns></returns> public abstract string UpDateSql<T>(T t, WhereColModel[] Dm) where T : class; /// <summary> /// 根据实体类更新数据 /// </summary> /// <param name="Data">数据实体类</param> /// <returns></returns> public abstract int UpDate(TableModel Data); /// <summary> /// 删除 /// </summary> /// <param name="Data"></param> /// <returns></returns> public abstract int Delete(TableModel Data); /// <summary> /// 返回Delete Sql /// </summary> /// <param name="Data"></param> /// <returns></returns> public abstract string DeleteSql(TableModel Data); /// <summary> /// 执行增删改任意SQL /// </summary> /// <param name="Data"></param> /// <returns></returns> public abstract int RunSqlCmd(TableModel Data); /// <summary> /// 执行任意增删改SQL /// </summary> /// <param name="SqlStr"></param> /// <returns></returns> public abstract int RunAnySql(string SqlStr); /// <summary> /// 返回一行数据 /// </summary> /// <typeparam name="T">返回的对象</typeparam> /// <param name="Data">条件类</param> /// <returns></returns> public abstract T Row<T>(SelectModel Data); /// <summary> /// 返回单条数据 /// </summary> /// <param name="Data">条件类</param> /// <returns></returns> public abstract Object Scalar(SelectModel Data); /// <summary> /// 返回DataTable /// </summary> /// <param name="Data">条件类</param> /// <returns></returns> public abstract List<T> GetTable<T>(SelectModel Data); /// <summary> /// 返回一行数据 /// </summary> /// <typeparam name="T">反回的对象</typeparam> /// <param name="Data">条件类</param> /// <returns></returns> public abstract T Row<T>(SqlProModel Data); /// <summary> /// 返回单条数据 /// </summary> /// <param name="Data">条件类</param> /// <returns></returns> public abstract Object Scalar(SqlProModel Data); /// <summary> /// 返回List /// </summary> /// <typeparam name="T">对象</typeparam> /// <param name="Data">条件类</param> /// <returns></returns> public abstract List<T> GetTable<T>(SqlProModel Data); /// <summary> /// 返回DATASET对象 /// </summary> /// <param name="Data">条件类</param> /// <returns></returns> public abstract DataSet GetTable(SqlProModel Data); /// <summary> /// 返回DATASET对象 /// </summary> /// <param name="Data">条件类</param> /// <returns></returns> public abstract DataSet GetTable(SqlProModel Data, ref Hashtable OutPut); /// <summary> /// 返回有输出参数的List /// </summary> /// <typeparam name="T">对象</typeparam> /// <param name="Data">条件</param> /// <param name="OutPut">输出内容</param> /// <returns></returns> public abstract List<T> GetTable<T>(SqlProModel Data, ref Hashtable OutPut); }