C#拷贝一个库的表到另外一个库中(的四种方式)
1.该方法 基本不能用于实际开发中 ,仅供学习参考
public string Copy()
{
//要复制的表名
string table = "AAAAA";
//构造连接字符串
OracleConnectionStringBuilder builder1 = new OracleConnectionStringBuilder();
builder1.ConnectionString = "Data Source=192.168.0.141/orcl;User ID=MY_TP_ECDB;Password=MY_TP_ECDB;Unicode=true"; OracleConnectionStringBuilder builder2 = new OracleConnectionStringBuilder();
builder2.ConnectionString = "Data Source=192.168.0.141/orcl;User ID=BZECDB;Password=BZECDB;Unicode=true"; //调用复制数据库函数
InsertTable(builder1.ConnectionString, builder2.ConnectionString, table); return default(string);
}
/// <summary>
/// 将巴中商城拷贝到绵阳
/// </summary>
private static void InsertTable(string conString1, string conString2, string tabStr)
{
OracleConnection connMY = new OracleConnection();
//connMY.ConnectionString = "Data Source=192.168.0.141/orcl;User ID=MY_TP_ECDB;Password=MY_TP_ECDB;Unicode=true";
connMY.ConnectionString = conString1;
connMY.Open(); OracleConnection connBZ = new OracleConnection();
connBZ.ConnectionString = conString2;
connBZ.Open(); //将巴中数据库拷贝到绵阳,那么先读出绵阳原来的数据保存在dataSet1中
OracleDataAdapter adapter1 = new OracleDataAdapter("select * from " + tabStr , connMY);
DataSet dataSet1 = new DataSet(); if (dataSet1 != null)
{
adapter1.Fill(dataSet1, tabStr);
}
OracleDataAdapter adapter2 = new OracleDataAdapter("select * from " + tabStr , connBZ);
DataSet dataSet2 = new DataSet();//巴中数据 OracleCommand cmd2 = new OracleCommand("select count(*) from " + tabStr, connBZ);
Object res2 = cmd2.ExecuteScalar(); if (res2 != null)
{
int nCount = Convert.ToInt32(res2.ToString());
if (nCount == )
{
connBZ.Close();
connMY.Close();
return;
}
}
//填充DataSet2 巴中的数据
if (dataSet2 != null)
{
adapter2.Fill(dataSet2, tabStr);
}
//复制数据
for (int j = ; j < dataSet2.Tables[].Rows.Count; j++)
{
dataSet1.Tables[].LoadDataRow(dataSet2.Tables[].Rows[j].ItemArray, false);
}
//将DataSet变换显示在与其关联的目标数据库
OracleCommandBuilder cb = new OracleCommandBuilder(adapter1);
adapter1.Update(dataSet1, tabStr);
cb.RefreshSchema();
Console.WriteLine("表" + tabStr + "复制成功!");
connBZ.Close();
connMY.Close();
}
2.巴中数据库同步到绵阳.rar 该项目为实际开发时的源码,因两地数据库不对外开发,Dblink 不能使用. 我的思路是巴中放一个windowsService
绵阳放一个webservice,巴中数据库相关表
建立触发器 对表的增删改 都记录在一张表中City_cfjlb(触发记录表),windowsService根据这张表的数据调用webservice 并将数据传递到绵阳.绵阳数据库也需另建立一张表,保存表名称,巴中对应表id ,绵阳对应表id
相关触发器代码 如下:
3,如果量数据库可以创建DBlink: 那就简单了:
Oracle两个数据库联合查询,使用Oracle DBLink
4.数据库创建主从关系:博主还未用到过次解决方案~~~
C#拷贝一个库的表到另外一个库中(的四种方式)的更多相关文章
- eclipse查看一个方法被谁引用(调用)的快捷键四种方式
1.(首推)双击选中该方法,Ctrl+Alt+H 如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ctrl+Alt+H”, Eclipse就会显示出这个方法被哪些方法调用 ...
- Hive创建表|数据的导入|数据导出的几种方式
* Hive创建表的三种方式 1.使用create命令创建一个新表 例如:create table if not exists db_web_data.track_log(字段) partitione ...
- JavaScript表单提交四种方式
总结JavaScript表单提交四种方式 <!DOCTYPE html> <html> <head> <title>JavaScript表单提交四种方式 ...
- JavaScript确定一个字符串是否包含在另一个字符串中的四种方法
一.indexOf() 1.定义 indexOf()方法返回String对象第一次出现指定字符串的索引,若未找到指定值,返回-1.(数组同一个概念) 2.语法 str.indexOf(searchVa ...
- java 四种方式实现字符流文件的拷贝对比
将D:\\应用软件\\vm.exe 拷贝到C:\\vm.exe 四种方法耗费时间对比 4>2>3>1 package Copy; import java.io.Buffere ...
- 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
- 四种方式带你层层递进解剖算法---hash表不一定适合寻找重复数据
一.题目描述 找出数组中重复的数字 > 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. ...
- python操作mysql数据库读取一个数据库的表写入另一个数据库
写这个肯定是工作需要了,不啰嗦,直接说事 我现在有两台主机,一台是公司主机,一台是客户主机,要求把公司主机上的三个表同步到客户主机上的数据库 注意是同步,首先就得考虑用linux定时任务或者主从复制, ...
- C# MVC提交表单的四种方式(转)
Mvc 提交表单的4种方法全程详解(转) 一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttribu ...
随机推荐
- dee
窗口居中def center(self): screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((s ...
- 在java代码中控制UI界面
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle saved ...
- 小妖精的完美游戏教室——东方PROJECT,同人,th12灵梦A
╮(╯▽╰)╭没办法,小妖精Balous也很讨厌学院化的教育呀,一点意义都没有. 这次就上传东方地灵殿灵梦A逻辑部分的核心代码吧,估计连老师都看不懂.动画部分的代码就不放上来了. //======== ...
- DEV gridview根据单元格值改变其他单元格格式
string style = ""; private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid. ...
- python leetcode 颠倒二进制数
我的做法,,这个题在于必须补0 def reverseBits(n): num=32-len(bin(n)[2:]) m = bin(n)[2:][::-1] if num > 0: for i ...
- Vue --- :is
1.1 基本示例 <div id="app"> <!-- template slot transition --> <input type=" ...
- python 基础之python的六大标准数据类型
一:Number 数字类型(int float bool complex) 1.整型: (正整数 0 负整数)#(1)二进制用0b表示intvar = 0b1010print(intvar)pr ...
- 密码疑云 (2)——RSA加密机制需要的数学知识
在公钥密码体制提出不久,人们就找到其中的三种,其中最著名的当属RSA体制.RSA是一种非对称加密体制,在公开密钥加密和电子商业中被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rivest) ...
- python selenium-webdriver 元素操作之键盘操作(五)
上节介绍了模拟鼠标对元素的操作,本节主要介绍键盘对元素的操作,实际过程中鼠标对元素的操作比键盘对元素的操作更经常使用,但是键盘对元素的操作也很重要,本节主要介绍一下键盘对元素的操作. selenium ...
- java中增删改查(CRUD)总结
对于User表增删改查:1:save(保存方法) view(查询所有记录) update(更新方法) delete(删除方法) 通过method这个参数进行判断执行不同的操作 2: 具体的实现: ...