Example #1
0
        /// <summary>
        /// 事务执行有参语句返回DataSet
        /// </summary>
        /// <param name="transaction"></param>
        /// <param name="commandType"></param>
        /// <param name="commandText"></param>
        /// <returns></returns>
        public DataSet ExecuteDataset(IDbTransaction transaction, CommandType commandType, string commandText, params IDbDataParameter[] commandParameters)
        {
            if (transaction == null)
            {
                throw new ArgumentNullException("transaction");
            }
            if (transaction != null && transaction.Connection == null)
            {
                throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            }

            // Create a command and prepare it for execution
            IDbCommand cmd = DbManagerFactory.GetCommand(_dataProvider);
            bool       mustCloseConnection = false;

            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);

            // Create the DataAdapter & DataSet
            IDbDataAdapter da = DbManagerFactory.GetDataAdapter(_dataProvider);

            da.SelectCommand = cmd;
            DataSet ds = new DataSet();

            // Fill the DataSet using default values for DataTable names, etc
            //da.SelectCommand.CommandTimeout = 0;
            da.Fill(ds);

            // Detach the OracleParameters from the command object, so they can be used again
            cmd.Parameters.Clear();

            // Return the dataset
            return(ds);
        }
Example #2
0
        /// <summary>
        /// 连接执行参数语句返回DataSet
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="commandType"></param>
        /// <param name="commandText"></param>
        /// <param name="commandParameters"></param>
        /// <returns></returns>
        public DataSet ExecuteDataset(CommandType commandType, string commandText, IDbConnection conn = null, params IDbDataParameter[] commandParameters)
        {
            // Create a command and prepare it for execution
            IDbCommand cmd = DbManagerFactory.GetCommand(_dataProvider);

            if (conn == null)
            {
                conn = GetConnection();
            }
            bool mustCloseConnection = false;

            PrepareCommand(cmd, conn, null, commandType, commandText, commandParameters, out mustCloseConnection);

            // Create the DataAdapter & DataSet
            IDbDataAdapter da = DbManagerFactory.GetDataAdapter(_dataProvider);

            da.SelectCommand = cmd;
            DataSet ds = new DataSet();

            // Fill the DataSet using default values for DataTable names, etc
            //da.SelectCommand.CommandTimeout = 0;
            da.Fill(ds);

            // Detach the OracleParameters from the command object, so they can be used again
            cmd.Parameters.Clear();

            if (mustCloseConnection)
            {
                conn.Close();
            }

            // Return the dataset
            return(ds);
        }
Example #3
0
        /// <summary>
        /// batch import table data,short connect or trans
        /// </summary>
        /// <param name="sqlStr"></param>
        /// <param name="dt"></param>
        /// <param name="errText"></param>
        /// <param name="trans"></param>
        /// <returns>-1 异常 0 未影响数据 >0 影响数据行数</returns>
        public int BatchImportTable(string sqlStr, DataTable dt, IDbTransaction trans = null)
        {
            int  retVal = -1;
            bool mustCloseConnection = false;

            IDbConnection conn;

            if (trans == null)
            {
                conn = GetConnection();
                mustCloseConnection = true;
            }
            else if (trans.Connection == null)
            {
                throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            }
            else
            {
                conn = trans.Connection;
            }

            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }

            IDbCommand cmd = DbManagerFactory.GetCommand(_dataProvider);

            cmd.CommandText = sqlStr;
            cmd.Connection  = conn;

            IDbDataAdapter da = DbManagerFactory.GetDataAdapter(_dataProvider);

            da.SelectCommand = cmd;

            DbCommandBuilder cmdBuilder = DbManagerFactory.GetCommandBuilder(_dataProvider);

            cmdBuilder.DataAdapter = (DbDataAdapter)da;

            retVal = ((DbDataAdapter)da).Update(dt);

            if (mustCloseConnection)
            {
                conn.Close();
            }
            return(retVal);
        }
Example #4
0
        /// <summary>
        /// 事务执行参数语句
        /// </summary>
        /// <param name="transaction"></param>
        /// <param name="commandType"></param>
        /// <param name="commandText"></param>
        /// <param name="commandParameters"></param>
        /// <returns></returns>
        public int ExecuteNonQuery(IDbTransaction transaction, CommandType commandType, string commandText, params IDbDataParameter[] commandParameters)
        {
            if (transaction == null)
            {
                throw new ArgumentNullException("transaction");
            }
            if (transaction != null && transaction.Connection == null)
            {
                throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            }

            IDbCommand command             = DbManagerFactory.GetCommand(_dataProvider);
            bool       mustCloseConnection = false;

            PrepareCommand(command, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
            int retVal = command.ExecuteNonQuery();

            command.Parameters.Clear();

            return(retVal);
        }
Example #5
0
        /// <summary>
        /// 连接执行参数语句
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="commandType"></param>
        /// <param name="commandText"></param>
        /// <param name="commandParameters"></param>
        /// <returns></returns>
        public int ExecuteNonQuery(CommandType commandType, string commandText, params IDbDataParameter[] commandParameters)
        {
            // Create a command and prepare it for execution
            IDbCommand    cmd  = DbManagerFactory.GetCommand(_dataProvider);
            IDbConnection conn = GetConnection();
            bool          mustCloseConnection = false;

            PrepareCommand(cmd, conn, null, commandType, commandText, commandParameters, out mustCloseConnection);

            // Finally, execute the command
            int retVal = cmd.ExecuteNonQuery();

            // Detach the OracleParameters from the command object, so they can be used again
            cmd.Parameters.Clear();

            if (mustCloseConnection)
            {
                conn.Close();
            }
            return(retVal);
        }