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,如需转载请自行联系原作者

相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
132 68
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
存储 Oracle 关系型数据库
【数据库-DB2】深入了解DB2 reorg
本文介绍了DB2数据库中reorg操作的重要性,旨在通过重组表数据来消除数据碎片、压缩信息并提高数据访问速度。reorg操作能够根据索引关键字重新排序数据,减少查询I/O次数,提升查询性能。文章详细讲解了reorg的操作步骤、适用场景及注意事项,强调了在执行reorg前后更新统计信息的必要性。
67 2
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
89 8
|
4月前
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
168 2
|
7月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
219 3
|
1月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
39 3
|
6天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
42 12
|
1月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
53 4
|
3月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
54 2