C#.NET通用权限管理在DB2数据库上运行的脚本参考 - 通过程序将数据导入到目标数据库中

简介:

参考代码如下:

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





本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1197383,如需转载请自行联系原作者

相关文章
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
236 0
|
12月前
|
关系型数据库 MySQL Linux
实现MySQL数据库的定时自动备份脚本。
拿走,不谢,这个脚本配方(指引)保证你的数据库数据像蛋糕店一样地天天更新,还能确保老旧的蛋糕(数据)不会堆积满仓库。这下可好,数据安全有保障,数据库管理员也能轻松一点,偶尔闲下来的时候,煮杯咖啡,看个剧岂不美哉?别忘了偶尔检查一下你的自动备份是否正常工作,以防万一蛋糕机器出了点小差错。
871 20
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
284 10
|
Java 关系型数据库 MySQL
Java汽车租赁系统源码(含数据库脚本)
Java汽车租赁系统源码(含数据库脚本)
572 4
|
8月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
537 158
|
8月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1424 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1031 156
|
8月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
578 156
|
8月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
689 161

热门文章

最新文章