设为首页 加入收藏

TOP

我与ADO.NET二三事(八)
2015-11-21 02:04:02 来源: 作者: 【 】 浏览:14
Tags:我与 ADO.NET 二三
wParameter(string argument_ParameterName, object argument_Value, DbType argument_DbType, ParameterDirection Direction); 9 } 通过IDatabaseCommandTextProvide接口可以看出有Transaction开头命名的方法,很显然它实现了事物操作.有人可能对CommandName不是很了解.它用于记录命令操作结果的名称,最能体现的是使用IOperation接口实现的DatabaseOperation操作.后期会提供案例.关于存储过程在Code上加上事物这里没有做,主要是考虑既然编写了存储过程脚本,那么你的事物应该在存储过程上处理,而不是在Code上. DatabaseCommandTextAsync 和 DatabaseCommandProcedureAsync: 1 public sealed class DatabaseCommandTextAsync : IDatabaseCommandTextAsyncProvide 2 { 3 public DatabaseCommandTextAsync(DatabaseConnection argument_Connection) 4 { 5 this.Connection = argument_Connection; 6 } 7 8 public string CommandName 9 { 10 get; 11 set; 12 } 13 14 public DatabaseConnection Connection 15 { 16 get; 17 private set; 18 } 19 20 public DbParameter NewParameter() 21 { 22 return this.Connection.DatabaseProvide.Factory.CreateParameter(); 23 } 24 25 public DbParameter NewParameter(string argument_ParameterName, object argument_Value, DbType argument_DbType, ParameterDirection Direction) 26 { 27 DbParameter _Parameter = this.Connection.DatabaseProvide.Factory.CreateParameter(); 28 _Parameter.ParameterName = argument_ParameterName; 29 _Parameter.Value = argument_Value; 30 _Parameter.DbType = argument_DbType; 31 _Parameter.Direction = Direction; 32 return _Parameter; 33 } 34 35 public async Task DeleteAsync(string argument_SqlText, DbParameter[] argument_Parameters) 36 { 37 this.Connection.Open(); 38 int _CommandResult = 0; 39 DbCommand _Command = this.Connection.DatabaseProvide.Factory.CreateCommand(); 40 _Command.Connection = this.Connection.Connection; 41 _Command.CommandText = argument_SqlText; 42 _Command.CommandType = CommandType.Text; 43 if (null != argument_Parameters) 44 { 45 _Command.Parameters.AddRange(argument_Parameters); 46 } 47 48 try 49 { 50 _CommandResult = await _Command.ExecuteNonQueryAsync(); 51 } 52 catch (Exception) 53 { 54 } 55 56 OperationValue _Value = new OperationValue(); 57 _Value.Value = _CommandResult; 58 59 return _Value; 60 } 61 62 public async Task DeleteAsync(string argument_SqlText, DbTransaction argument_Transaction, DbParameter[] argument_Parameters) 63 { 64 this.Connection.Open(); 65 int _CommandResult = 0; 66 DbCommand _Command = this.Connection.DatabaseProvide.Factory.CreateCommand(); 67 DbTransaction _Transaction = argument_Transaction; 68 _Command.Connection = this.Connection.Connection; 69 _Command.Transaction = _Transaction; 70 _Command.CommandText = argument_SqlText; 71 _Command.CommandType = CommandType.Text; 72 if (null != argument_Parameters) 73 { 74 _Command.Parameters.AddRange(argument_Parameters); 75 } 76 77 try 78 { 79 _CommandResult = await _Command.ExecuteNonQueryAsync(); 80 //_Transaction.Commit(); 81 } 82 catch (Exception) 83 { 84 _Transaction.Rollback(); 85 } 86 87 OperationValue _Value = new OperationValue(); 88 _Value.Value = _CommandResult; 89 90 return _Value; 91 } 92 93 public async Task ModifyAsync(string argument_SqlText, DbParameter[] argument_Parameters) 94 { 95 this.Connection.Open(); 96 int _CommandResult = 0; 97 DbCommand _Command = this.Connection.DatabaseProvide.Fact
首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/14/14
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Database 'xxxx' is bein.. 下一篇磁盘空间&SQL日志&作业执行情况

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: