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);
    }

 

posted on 2013-03-22 22:37  FLASHFYZ  阅读(305)  评论(0编辑  收藏  举报

导航