예제 #1
0
        private DbCommand PrepareCommand(string sql, IDbParms parameters, CommandType CommandType)
        {
            DbCommand Command;

            if (Trans != null)
            {
                //Command = _ProviderFactory.CreateCommand();
                Command             = Trans.Connection.CreateCommand();
                Command.Transaction = Trans;
            }
            else
            {
                //Command = _ProviderFactory.CreateCommand();
                Command = Conn.CreateCommand();
                //Command = _ProviderFactory.CreateCommand();
                //Command.Connection = Conn;
            }
            Command.CommandType    = CommandType;
            Command.CommandText    = sql;
            Command.CommandTimeout = CommandTimeOut;
            //Command.SetParameters(parameters);
            if (parameters != null)
            {
                SetParameters(Command, parameters);
            }

            //Command.Disposed += Command_Disposed;
            return(Command);
        }
 public RptCommonUnitTable(Form owner, string RptFileName, string SPName, IDbParms Parms)
     : base(owner, RptFileName)
 {
     ISSP        = true;
     this.SPName = SPName;
     this.Parms  = Parms;
 }
예제 #3
0
        //private void Command_Disposed(object sender, EventArgs e)
        //{

        //}

        //private void ClearCommandParams()
        //{
        //    Command.Parameters.Clear();
        //}

        private void SetParameters(DbCommand Command, IDbParms parameters)
        {
            if (parameters == null)
            {
                return;
            }
            var parms = parameters.GetParms();
            var pv    = parameters.GetParmArrary();

            if (parms != null && parms.Length > 0)
            {
                Command.Parameters.AddRange(parms);
            }

            if (pv != null)
            {
                foreach (string key in pv.Keys)
                {
                    var cp = Command.CreateParameter();
                    cp.ParameterName = key;
                    cp.Value         = pv[key];
                    Command.Parameters.Add(cp);
                }
            }
        }
예제 #4
0
 /// <summary>
 /// 单表数据报表 存储过程获得数据源
 /// </summary>
 /// <param name="owner"></param>
 /// <param name="RptFileName"></param>
 /// <param name="SPName"></param>
 /// <param name="Parms"></param>
 public RptCommonCustomer(Form owner, string RptFileName, string SPName, IDbParms Parms)
     : base(owner, RptFileName)
 {
     this.SPName = SPName;
     this.Parms  = Parms;
     ISSP        = true;
 }
예제 #5
0
 /// <summary>
 /// 执行SQL语句,委托处理结果
 /// </summary>
 /// <param name="sql">SQL语句</param>
 /// <param name="parameters">查询参数</param>
 /// <param name="action">处理委托</param>
 public void ExecuteDataReader(string sql, IDbParms parameters, Action <DbDataReader> action)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         db.ExecuteDataReader(sql, parameters, action);
     }
 }
예제 #6
0
 private int ExecuteNonQuery(CommandType CommandType, string sql, IDbParms parameters)
 {
     using (var Command = PrepareCommand(sql, parameters, CommandType))
     {
         int query = Command.ExecuteNonQuery();
         return(query);
     }
 }
예제 #7
0
 /// <summary>
 /// 执行存储过程,判断是否有返回数据
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public bool HasRowSP(string StoredProcedureName, IDbParms parameters)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.HasRowSP(StoredProcedureName, parameters));
     }
 }
예제 #8
0
 /// <summary>
 /// 执行存储过程,返回第一行第一列
 /// </summary>
 /// <typeparam name="T">返回类型</typeparam>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public T ExecuteScalarSP <T>(string StoredProcedureName, IDbParms parameters)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.ExecuteScalarSP <T>(StoredProcedureName, parameters));
     }
 }
예제 #9
0
 /// <summary>
 /// 执行存储过程,返回DataTable结构
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="TableName">表名</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public DataTable GetTableSP(string StoredProcedureName, string TableName, IDbParms parameters)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.GetTableSP(StoredProcedureName, TableName, parameters));
     }
 }
예제 #10
0
 /// <summary>
 /// 执行存储过程,委托处理结果
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters"></param>
 /// <param name="action"></param>
 public void ExecuteDataReaderSP(string StoredProcedureName, IDbParms parameters, Action <DbDataReader> action)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         db.ExecuteDataReaderSP(StoredProcedureName, parameters, action);
     }
 }
예제 #11
0
 /// <summary>
 ///  执行存储过程,并返回受影响行数
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public int ExecuteNonQuerySP(string StoredProcedureName, IDbParms parameters)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.ExecuteNonQuerySP(StoredProcedureName, parameters));
     }
 }
예제 #12
0
 /// <summary>
 /// 执行SQL语句,判断是否有返回数据
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public bool HasRow(string sql, IDbParms parameters)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.HasRow(sql, parameters));
     }
 }
예제 #13
0
 /// <summary>
 /// 执行SQL语句,返回第一行第一列
 /// </summary>
 /// <typeparam name="T">返回类型</typeparam>
 /// <param name="sql">SQL语句</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public T ExecuteScalar <T>(string sql, IDbParms parameters)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.ExecuteScalar <T>(sql, parameters));
     }
 }
예제 #14
0
 /// <summary>
 /// 执行SQL语句,返回DataSet结构
 /// </summary>
 /// <param name="sql">SQL语句</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public DataSet GetDataSet(string sql, IDbParms parameters = null)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.GetDataSet(sql, parameters));
     }
 }
예제 #15
0
 /// <summary>
 /// 执行SQL语句,返回DataTable结构
 /// </summary>
 /// <param name="sql">SQL语句</param>
 /// <param name="TableName">表名</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public DataTable GetTable(string sql, string TableName, IDbParms parameters = null)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.GetTable(sql, TableName, parameters));
     }
 }
예제 #16
0
 /// <summary>
 /// 执行存储过程,并返回第一条数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="StoredProcedureName"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public T ExecuteDataFirstSP <T>(string StoredProcedureName, IDbParms parameters) where T : new()
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.ExecuteDataFirstSP <T>(StoredProcedureName, parameters));
         // 这里一定要用yield,这样可以延迟执行,直接用return db.ExecuteDataReader(sql, parameters, action)在执行dr.Read()的时候,cmd对象早就释放掉了
         //foreach (var r in db.ExecuteDataReaderSP(StoredProcedureName, parameters, action))
         //    yield return r;
     }
 }
예제 #17
0
 /// <summary>
 /// 执行SQL语句,并返回第一条数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="sql"></param>
 /// <param name="parameters"></param>
 /// <param name="action"></param>
 /// <returns></returns>
 public T ExecuteDataFirst <T>(string sql, IDbParms parameters, Func <DbDataReader, T> action)
 {
     using (var connection = CreateConnection())
     {
         var db = GetCommandDataBase(connection);
         return(db.ExecuteDataFirst(sql, parameters, action));
         // 这里一定要用yield,这样可以延迟执行,直接用return db.ExecuteDataReader(sql, parameters, action)在执行dr.Read()的时候,cmd对象早就释放掉了
         //foreach (var r in db.ExecuteDataReader(sql, parameters, action))
         //    yield return r;
     }
 }
예제 #18
0
 private bool HasRow(CommandType CommandType, string sql, IDbParms parameters)
 {
     using (var Command = PrepareCommand(sql, parameters, CommandType))
     {
         bool success = false;
         using (var dr = Command.ExecuteReader())
         {
             success = dr.HasRows;
         }
         //ClearCommandParams();
         return(success);
     }
 }
예제 #19
0
 private void ExecuteDataReader(CommandType CommandType, string sql, IDbParms parameters, Action <DbDataReader> action)
 {
     using (var Command = PrepareCommand(sql, parameters, CommandType))
     {
         using (var dr = Command.ExecuteReader())
         {
             while (dr.Read())
             {
                 action.Invoke(dr);
             }
         }
         //ClearCommandParams();
     }
 }
예제 #20
0
        private DataSet GetDataSet(CommandType CommandType, string sql, IDbParms parameters)
        {
            DataSet ds = new DataSet();

            using (var DataAdapter = CreateDataAdapter())
            {
                using (var Command = PrepareCommand(sql, parameters, CommandType))
                {
                    DataAdapter.SelectCommand = Command;
                    DataAdapter.Fill(ds);
                }
                //ClearCommandParams();
                return(ds);
            }
        }
예제 #21
0
 private T ExecuteDataFirst <T>(CommandType CommandType, string sql, IDbParms parameters) where T : new()
 {
     using (var Command = PrepareCommand(sql, parameters, CommandType))
     {
         T result = default(T);
         using (var dr = Command.ExecuteReader())
         {
             if (dr.Read())
             {
                 result = dr.ToObject <T>();
             }
             //yield return action.Invoke(dr);
         }
         //ClearCommandParams();
         return(result);
     }
 }
예제 #22
0
 private List <T> ExecuteDataList <T>(CommandType CommandType, string sql, IDbParms parameters) where T : new()
 {
     using (var Command = PrepareCommand(sql, parameters, CommandType))
     {
         List <T> lst = new List <T>();
         using (var dr = Command.ExecuteReader())
         {
             while (dr.Read())
             {
                 lst.Add(dr.ToObject <T>());
             }
             //yield return action.Invoke(dr);
         }
         //ClearCommandParams();
         return(lst);
     }
 }
예제 #23
0
 private T ExecuteScalar <T>(CommandType CommandType, string sql, IDbParms parameters)
 {
     using (var Command = PrepareCommand(sql, parameters, CommandType))
     {
         var v = Command.ExecuteScalar();
         //ClearCommandParams();
         //return (T)v;
         if (v == DBNull.Value || v == null)
         {
             return(default(T));
         }
         else
         {
             return((T)v);
         }
     }
 }
예제 #24
0
 /// <summary>
 /// 执行存储过程,判断是否有返回数据
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public bool HasRowSP(string StoredProcedureName, IDbParms parameters)
 {
     return(HasRow(CommandType.StoredProcedure, StoredProcedureName, parameters));
 }
예제 #25
0
 /// <summary>
 /// 执行存储过程,返回DataSet结构
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public DataSet GetDataSetSP(string StoredProcedureName, IDbParms parameters)
 {
     return(GetDataSet(CommandType.StoredProcedure, StoredProcedureName, parameters));
 }
예제 #26
0
 /// <summary>
 /// 执行存储过程,返回DataTable结构
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="TableName">表名</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public DataTable GetTableSP(string StoredProcedureName, string TableName, IDbParms parameters)
 {
     return(GetTable(CommandType.StoredProcedure, TableName, StoredProcedureName, parameters));
 }
예제 #27
0
 /// <summary>
 /// 执行存储过程,返回第一行第一列
 /// </summary>
 /// <typeparam name="T">返回类型</typeparam>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters">查询参数</param>
 /// <returns></returns>
 public T ExecuteScalarSP <T>(string StoredProcedureName, IDbParms parameters)
 {
     return(ExecuteScalar <T>(CommandType.StoredProcedure, StoredProcedureName, parameters));
 }
예제 #28
0
 /// <summary>
 /// 执行存储过程,委托处理结果
 /// </summary>
 /// <param name="StoredProcedureName">存储过程名称</param>
 /// <param name="parameters"></param>
 /// <param name="action"></param>
 public void ExecuteDataReaderSP(string StoredProcedureName, IDbParms parameters, Action <DbDataReader> action)
 {
     ExecuteDataReader(CommandType.StoredProcedure, StoredProcedureName, parameters, action);
 }
예제 #29
0
 /// <summary>
 /// 执行存储过程,返回第一行数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="StoredProcedureName"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public T ExecuteDataFirstSP <T>(string StoredProcedureName, IDbParms parameters) where T : new()
 {
     return(ExecuteDataFirst <T>(CommandType.StoredProcedure, StoredProcedureName, parameters));
 }
예제 #30
0
 /// <summary>
 /// 执行存储过程,返回第一行数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="StoredProcedureName"></param>
 /// <param name="parameters"></param>
 /// <param name="action"></param>
 /// <returns></returns>
 public T ExecuteDataFirstSP <T>(string StoredProcedureName, IDbParms parameters, Func <DbDataReader, T> action)
 {
     return(ExecuteDataFirst <T>(CommandType.StoredProcedure, StoredProcedureName, parameters, action));
 }