参考代码如下:
// -------------------------------------------------------------------- // All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd. // -------------------------------------------------------------------- using System.Data; namespace DotNet.Example { using DotNet.BaseManager; using DotNet.DbUtilities; public class ImportExportData { /// <summary> /// 导出数据库到Oralce /// </summary> public void Export() { this .ExportTable( " Items_Nationality " ); this .ExportTable( " Items_Area " ); this .ExportTable( " Items_AuditStatus " ); this .ExportTable( " Items_Degree " ); this .ExportTable( " Items_Duty " ); this .ExportTable( " Items_Education " ); this .ExportTable( " Items_Express " ); this .ExportTable( " Items_Links " ); this .ExportTable( " Items_MembershipLevels " ); this .ExportTable( " Items_NewsCategory " ); this .ExportTable( " Items_OnSale " ); this .ExportTable( " Items_OrganizeCategory " ); this .ExportTable( " Items_Party " ); this .ExportTable( " Items_Pattern " ); this .ExportTable( " Items_PayCategory " ); this .ExportTable( " Items_PostCategory " ); this .ExportTable( " Items_RoleCategory " ); this .ExportTable( " Items_SalaryItemCategory " ); this .ExportTable( " Items_SendCategory " ); this .ExportTable( " Items_Gender " ); this .ExportTable( " Items_Title " ); this .ExportTable( " Items_Units " ); this .ExportTable( " Items_Wed " ); this .ExportTable( " Items_AuditStatus " ); this .ExportTable( " Items_WorkCategory " ); this .ExportTable( " Items_WorkFlowCategories " ); this .ExportTable( " Items_WorkingProperty " ); this .ExportTable( " Base_Businesscard " ); this .ExportTable( " Base_Comment " ); this .ExportTable( " Base_Contact " ); this .ExportTable( " Base_ContactDetails " ); this .ExportTable( " Base_Exception " ); this .ExportTable( " Base_File " ); this .ExportTable( " Base_Folder " ); this .ExportTable( " Base_Items " ); this .ExportTable( " Base_Log " ); this .ExportTable( " Base_Message " ); this .ExportTable( " Base_News " ); this .ExportTable( " Base_Organize " ); this .ExportTable( " Base_Module " , " SELECT * FROM BASE_MODULE ORDER BY PARENTID, ID " ); this .ExportTable( " Base_PermissionItem " ); this .ExportTable( " Base_Role " ); this .ExportTable( " Base_Staff " ); this .ExportTable( " Base_Parameter " ); this .ExportTable( " Base_Project " ); this .ExportTable( " Base_Permission " ); this .ExportTable( " Base_PermissionScope " ); this .ExportTable( " Base_Sequence " ); this .ExportTable( " Base_StaffOrganize " ); this .ExportTable( " Base_TableColumns " ); this .ExportTable( " Base_User " ); this .ExportTable( " Base_UserAddress " ); this .ExportTable( " Base_UserOrganize " ); this .ExportTable( " Base_UserRole " ); this .ExportTable( " Base_StaffOrganize " ); /* this.ExportTable("Base_WorkFlowActivity"); this.ExportTable("Base_WorkFlowCurrent"); this.ExportTable("Base_WorkFlowHistory"); this.ExportTable("Base_WorkFlowProcess"); */ System.Console.ReadLine(); } public void ExportTable( string tableName) { ExportTable(tableName.ToUpper(), tableName.ToUpper()); } /// <summary> /// 导出一个表 /// </summary> /// <param name="tableName"> 表名 </param> /// <param name="table"> 里面的数据 </param> public void ExportTable( string tableName, string table) { // 这里是获取目标数据表的方法 IDbHelper sourceDB = new SqlHelper( " Data Source=192.168.0.121;Initial Catalog=UserCenterV36;User Id = sa ; Password = xx; " ); sourceDB.Open(); DataTable dataTable = new DataTable(tableName); if (tableName.Equals(table)) { dataTable = sourceDB.Fill( " SELECT * FROM " + table); } else { dataTable = sourceDB.Fill(table); } sourceDB.Close(); // 这里是目标表的数据插入处理 // IDbHelper targetDB = new OracleHelper("Data Source=KANGFU;user=usercenter;password=xx;"); IDbHelper targetDB = new DB2Helper( " Database=UCV36;UserID=JIRIGALA;Password=xx;Server=JIRIGALA-PC; " ); targetDB.Open(); targetDB.BeginTransaction(); SQLBuilder sqlBuilder = new SQLBuilder(targetDB); try { // 清除表数据 // targetDB.ExecuteNonQuery(" TRUNCATE TABLE " + tableName); targetDB.ExecuteNonQuery( " DELETE FROM " + tableName); // 创建配套的序列 // targetDB.ExecuteNonQuery("create sequence SEQ_" + tableName.ToUpper() + " as bigint start with 1000000 increment by 1 minvalue 10000 maxvalue 99999999999999999 cycle cache 20 order"); // targetDB.ExecuteNonQuery("create sequence SEQ_" + tableName + " minvalue 1 maxvalue 999999999999999999999999 start with 1 increment by 1 cache 20"); int r = 0 ; for (r = 0 ; r < dataTable.Rows.Count; r ++ ) { sqlBuilder.BeginInsert(tableName); for ( int i = 0 ; i < dataTable.Columns.Count; i ++ ) { sqlBuilder.SetValue(dataTable.Columns[i].ColumnName, dataTable.Rows[r][dataTable.Columns[i].ColumnName]); } sqlBuilder.EndInsert(); // System.Console.WriteLine("表 " + tableName + " 已插入第 " + r.ToString() + " 行"); } System.Console.WriteLine( " - - 表 " + tableName + " 共插入 " + r.ToString() + " 行 " ); targetDB.CommitTransaction(); } catch (System.Exception exception) { // targetDB.RollbackTransaction(); System.Console.WriteLine(tableName + " -- " + exception.Message); } finally { targetDB.Close(); } } } }
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。