我与ADO.NET二三事(十一)

2015-11-21 02:04:02 · 作者: · 浏览: 69
xt; 315 if (null != argument_Parameters) 316 { 317 _Command.Parameters.AddRange(argument_Parameters); 318 } 319 320 try 321 { 322 _CommandResult = await _Command.ExecuteNonQueryAsync(); 323 _Transaction.Commit(); 324 } 325 catch (Exception) 326 { 327 _Transaction.Rollback(); 328 } 329 330 OperationValue _Value = new OperationValue(); 331 _Value.Value = _CommandResult; 332 333 return _Value; 334 } 335 336 public async Task TransactionSaveAsync(string argument_SqlText, DbParameter[] argument_Parameters) 337 { 338 this.Connection.Open(); 339 int _CommandResult = 0; 340 DbCommand _Command = this.Connection.DatabaseProvide.Factory.CreateCommand(); 341 _Command.Connection = this.Connection.Connection; 342 DbTransaction _Transaction = this.Connection.Connection.BeginTransaction(); 343 _Command.Transaction = _Transaction; 344 _Command.CommandText = argument_SqlText; 345 _Command.CommandType = CommandType.Text; 346 if (null != argument_Parameters) 347 { 348 _Command.Parameters.AddRange(argument_Parameters); 349 } 350 351 try 352 { 353 _CommandResult = await _Command.ExecuteNonQueryAsync(); 354 _Transaction.Commit(); 355 } 356 catch (Exception) 357 { 358 _Transaction.Rollback(); 359 } 360 361 OperationValue _Value = new OperationValue(); 362 _Value.Value = _CommandResult; 363 return _Value; 364 } 365 }

?

?
?

 1 public sealed class DatabaseCommandProcedureAsync : IDatabaseCommandProcedureAsyncProvide
 2     {
 3         public DatabaseCommandProcedureAsync(DatabaseConnection argument_Connection)
 4         {
 5             this.Connection = argument_Connection;
 6         }
 7 
 8         public string CommandName { get; set; }
 9 
10         public DatabaseConnection Connection { get; private set; }
11 
12         public async Task
ExecuteNonQuery(string argument_ProcedureName, DbParameter[] argument_Parameters) 13 { 14 this.Connection.Open(); 15 int _CommandResult = 0; 16 DbCommand _Command = this.Connection.DatabaseProvide.Factory.CreateCommand(); 17 _Command.Connection = this.Connection.Connection; 18 _Command.CommandText = argument_ProcedureName; 19 _Command.CommandType = CommandType.StoredProcedure; 20 if (null != argument_Parameters) 21 { 22 _Command.Parameters.AddRange(argument_Parameters); 23 } 24 25 try 26 { 27 _CommandResult = await _Command.ExecuteNonQueryAsync(); 28 } 29 catch (Exception) 30 { 31 32 } 33 34 OperationValue _Value = new OperationValue(); 35 _Value.Value = _CommandResult; 36 return _Value; 37 } 38 39 public DbParameter NewParameter() 40 { 41 return this.Connection.DatabaseProvide.Factory.CreateParameter(); 42 } 43 44 public DbParameter NewParameter(string argument_ParameterName, object argument_Value, DbType argument_DbType, ParameterDirection Direction) 45 { 46 DbParameter _Parameter = this.Connection.DatabaseProvide.Factory.CreateParameter(); 47 _Parameter.ParameterName = argument_ParameterName; 48 _Parameter.Value = argument_Value; 49 _Parameter.DbType = argument_DbType; 50 _Parameter.Direction = Direction; 51 return _Parameter; 52 } 53 54 public async Task Query(string argument_ProcedureName, DbParameter[] argument_Parameters) 55 { 56 this.Connection.Open(); 57 DataTable _QueryTable = new DataTable(); 58 DbComma