设为首页 加入收藏

TOP

我与ADO.NET二三事(十四)
2015-11-21 02:04:02 来源: 作者: 【 】 浏览:7
Tags:我与 ADO.NET 二三
.Clear(); 91 this.CommandValues.Add(_NextProcedureProvide.CommandName, _Value); 92 return this; 93 } 94 95 public DatabaseOperation WidthExecuteProcedureCommand(Func argument_Command) 96 { 97 _NextProcedureProvide = new DatabaseCommandProcedure(this._ConnectionProvide); 98 OperationValue _Value = argument_Command.Invoke(_NextProcedureProvide); 99 CommandValues.Add(_NextProcedureProvide.CommandName, _Value); 100 return this; 101 } 102 103 public DatabaseOperation BeginTransaction() 104 { 105 this._Transaction = this._ConnectionProvide.Connection.BeginTransaction(); 106 return this; 107 } 108 109 public DatabaseOperation EndTransaction() 110 { 111 this._Transaction.Commit(); 112 return this; 113 } 114 115 public DatabaseOperation CancelTransaction() 116 { 117 this._Transaction.Rollback(); 118 return this; 119 } 120 }

?

这个主要用于执行过程SQL.设计此类的灵感来源于一次工作任务,当时要整理和搬迁 Oracle,SQL SERVER , DB2等服务器上的数据,存储过程和函数等很多操作搬迁特别麻烦.因此设计了一个过程式执行SQL.
?
?
?
*************************************************************************************************************************************************
?
案例1 (备注:这个用的是System.Data.ODBC):


1 Database _Provide = new Database();
2 DatabaseConnection _Connection = new DatabaseConnection(_Provide);
3 IDatabaseCommandProcedure _CommandProcedure = new DatabaseCommandProcedure(_Connection);
4 DbParameter _IDParameter = _CommandProcedure.NewParameter("ID", 1, DbType.Int32, ParameterDirection.Input);
5 OperationValue _Value = _CommandProcedure.Query("Query ?", new DbParameter[] { _IDParameter });
?
案例2:
 1 DatabaseOperation _database_operation = new DatabaseOperation();
 2             _database_operation = _database_operation.ExecuteTextCommand(command =>
 3             {
 4                 command.CommandName = "INSERT";
 5                 return command.TransactionSave("INSERT INTO DatabaseUser(Name) VALUES('五哥哥')", null);
 6 
 7             }).ExecuteProcedureCommand((_command) =>
 8             {
 9                 bool _res = Convert.ToBoolean(_database_operation.CommandValues["INSERT"].Value);
10                 if (_res)
11                 {
12                     DbParameter _IDParameter = _command.NewParameter("ID", 2, DbType.Int32, ParameterDirection.Input);
13                     _command.CommandName = "Query";
14                     return _command.Query("Query", new DbParameter[] { _IDParameter });
15                 }
16                 else
17                 {
18                     return null;
19                 }
20             }).WidthExecuteTextCommand(_command =>
21             {
22                 _command.CommandName = "UPDATE";
23                 return _command.Modify("UPDATE DatabaseUser SET Name = '张三丰'", null);
24             });
25 
26             DataTable _dt = (DataTable)_database_operation.CommandValues["Query"].Value;
27             for (int i = 0; i < _dt.Rows.Count; i++)
28             {
29                 Console.WriteLine("ID:{0}\tName:{1}", _dt.Rows[i]["ID"], _dt.Rows[i]["Name"]);
30             }
?
?案例3:
 1 DatabaseOperation _database_operation = new DatabaseOperation();
 2 _database_operation.BeginTransaction();
 3             _database_operation.ExecuteTextCommand((command, transaction) =>
 4             {
 5                 command.CommandName = "新增";
 6                 return command.Save("INSERT INTO DatabaseUser(Name) VALUES('五哥哥')", null);
 7             }).WidthExecuteTextCommand((command, transaction) =>
 8             {
 9                 command.CommandName = "查询";
10                 return command.Query("SELECT * FROM DatabaseUser WHERE Name = '五哥哥'", transaction, null);
11             });
12 
13             DataTable _Dt = _database_operation.CommandValues["查询"].Value as DataTable;
14             if ("五哥哥".Equals((_Dt.Rows[0]["Name"])))
15             {
16                 _databa
首页 上一页 11 12 13 14 下一页 尾页 14/14/14
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Database 'xxxx' is bein.. 下一篇磁盘空间&SQL日志&作业执行情况

评论

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