Esempio n. 1
0
        /// <summary>
        /// 预处理用户提供的命令,数据库连接/事务/命令类型/参数
        /// </summary>
        /// <param>要处理的DbCommand</param>
        /// <param>数据库连接</param>
        /// <param>一个有效的事务或者是null值</param>
        /// <param>命令类型 (存储过程,命令文本, 其它.)</param>
        /// <param>存储过程名或都T-SQL命令文本</param>
        /// <param>和命令相关联的DbParameter参数数组,如果没有参数为'null'</param>
        /// <param><c>true</c> 如果连接是打开的,则为true,其它情况下为false.</param>
        /// <param name="cmdType"></param>
        /// <param name="cmdText"></param>
        /// <param name="cmdParams"></param>
        /// <param name="mustCloseConn"></param>
        private static DbCommand PrepareCmd(CommandType cmdType, string cmdText, DbParameter[] cmdParams, out bool mustCloseConn)
        {
            DbCommand cmd = _dataProviders.GetDbCommand(cmdText);

            DbConnection conn;

            if (_transConnectionObj != null)
            {
                conn            = _transConnectionObj.MyDbTransaction.Connection;
                cmd.Transaction = _transConnectionObj.MyDbTransaction;
                mustCloseConn   = false;
            }
            else
            {
                conn          = _dataProviders.GetDbConnection(_dataProviders.ConnectionString);
                mustCloseConn = true;
            }
            cmd.Connection = conn;

            cmd.CommandType = cmdType;

            AttachParameters(cmd, cmdParams);

            return(cmd);
        }