Ejemplo n.º 1
0
        private static object ExecuteScalar(IDbConnection connection, IDbCommand command)
        {
            DbConnectionStatus item   = new DbConnectionStatus(connection);
            object             result = null;

            item.OpenDbConnection();
            try
            {
                result = command.ExecuteScalar();
            }
            catch (Exception ex)
            {
                TkDebug.ThrowToolkitException(string.Format(ObjectUtil.SysCulture,
                                                            "执行SQL:{0}出错", command.CommandText), ex, null);
            }
            finally
            {
                item.CloseDbConnection();
            }
            if (result == null)
            {
                result = DBNull.Value;
            }
            return(result);
        }
Ejemplo n.º 2
0
        public static void UpdateTableResolvers(TkDbContext context, Action <Transaction> applyData,
                                                bool sort, IEnumerable <TableResolver> resolvers)
        {
            TkDebug.AssertArgumentNull(context, "context", null);
            TkDebug.AssertArgumentNull(resolvers, "resolvers", null);

            TkDebug.Assert(context.DbConnection is DbConnection, string.Format(ObjectUtil.SysCulture,
                                                                               "名称为{0}的DbContext中的DbConnection不是从System.Data.Common.DbConnection继承的,无法支持事务",
                                                                               context.ContextConfig.Name), null);
            DbConnectionStatus item = new DbConnectionStatus(context.DbConnection);

            CommittableTransaction transaction = CreateTransaction();

            using (transaction)
            {
                item.AttachTransaction(transaction);
                try
                {
                    ApplyUpdates(transaction, applyData, sort, resolvers);
                }
                catch (DBConcurrencyException ex)
                {
                    transaction.Rollback();

                    if (ex.Message.IndexOf("UpdateCommand 影响 0 个记录", StringComparison.CurrentCulture) > 0)
                    {
                        throw new ConcurrencyException(ex);
                    }
                    else
                    {
                        throw;
                    }
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
                finally
                {
                    item.DetachTransaction();
                }
            }
        }
Ejemplo n.º 3
0
        public void Execute()
        {
            CreateStoredProc();
            DbConnectionStatus item = new DbConnectionStatus(fConnection);

            item.OpenDbConnection();
            try
            {
                Command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                TkDebug.ThrowToolkitException(string.Format(ObjectUtil.SysCulture,
                                                            "执行存储过程:{0}出错", Command.CommandText), ex, null);
            }
            finally
            {
                item.CloseDbConnection();
            }
            SetOutputValues();
        }
Ejemplo n.º 4
0
        private static int ExecuteNonQuery(IDbConnection connection, IDbCommand command)
        {
            DbConnectionStatus item = new DbConnectionStatus(connection);

            item.OpenDbConnection();
            try
            {
                int result = command.ExecuteNonQuery();
                return(result);
            }
            catch (Exception ex)
            {
                TkDebug.ThrowToolkitException(string.Format(ObjectUtil.SysCulture,
                                                            "执行SQL:{0}出错", command.CommandText), ex, null);
                return(-1);
            }
            finally
            {
                item.CloseDbConnection();
            }
        }