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); }
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(); } } }
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(); }
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(); } }