示例#1
0
        /// <summary>
        /// Executes the non query.
        /// </summary>
        /// <param name="conn">The conn.</param>
        /// <param name="transaction">The transaction.</param>
        /// <param name="sql">The SQL.</param>
        /// <param name="parameters">The parameters.</param>
        /// <returns></returns>
        public int ExecuteNonQuery(DbConnection conn, ITransaction transaction, string sql, params QueryParam[] parameters)
        {
            using (DbCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = sql;
                cmd.Connection  = conn;
                if (CommandTimeout != null)
                {
                    cmd.CommandTimeout = CommandTimeout.Value;
                }

                if (parameters != null)
                {
                    for (int i = 0; i < parameters.Length; i++)
                    {
                        var dbParam = dbConnector.CreateParameter(parameters[i].Name, parameters[i].Value, parameters[i].PropertyDbType);
                        cmd.Parameters.Add(dbParam);
                    }
                }

                transaction?.Enlist(cmd);

                logger.Log(LogLevel.Debug, sql);
                return(cmd.ExecuteNonQuery());
            }
        }