using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;

namespace WangwoSoft.ShejiWorld.WebSite.GeneralHandler
{
/// <summary>
/// MemberHandler 的摘要说明
/// </summary>
public class MemberHandler : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//要复制的表名
string table = "member_user";

//构造连接字符串
SqlConnectionStringBuilder sqlConnect1 = new SqlConnectionStringBuilder();
sqlConnect1.DataSource = "211.149.***.***";
sqlConnect1.InitialCatalog = "*****";//目标数据库
sqlConnect1.IntegratedSecurity = false;
sqlConnect1.UserID = "*****";//登录ID
sqlConnect1.Password = "*******";//数据库密码

SqlConnectionStringBuilder sqlConnect2 = new SqlConnectionStringBuilder();
sqlConnect2.DataSource = "211.149.***.***";
sqlConnect2.InitialCatalog = "*****";//源数据库
sqlConnect2.IntegratedSecurity = false;//当true的时候为windows身份验证
sqlConnect2.UserID = "*******";//登录ID
sqlConnect2.Password = "*******";//数据库密码

//调用复制数据库函数
string result = InsertTable(sqlConnect1.ConnectionString, sqlConnect2.ConnectionString, table);
context.Response.Write(result);
}

//参数为两个数据库的连接字符串
private string InsertTable(string conString1,string conString2,string tabString)
{
//连接数据库
SqlConnection conn1 = new SqlConnection();
conn1.ConnectionString = conString1;
conn1.Open();

SqlConnection conn2 = new SqlConnection();
conn2.ConnectionString = conString2;
conn2.Open();

//填充DataSet1
SqlDataAdapter adapter1 = new SqlDataAdapter("select * from "+tabString,conn1);
DataSet dataSet1 = new DataSet();
if (dataSet1!=null)
{
adapter1.Fill(dataSet1, tabString);
}

SqlDataAdapter adapter2 = new SqlDataAdapter("select * from " + tabString, conn2);
DataSet dataSet2 = new DataSet();

SqlCommand cmd2 = new SqlCommand("select COUNT(*) from "+tabString,conn2);

Object res2 = cmd2.ExecuteScalar();
if (res2!=null)
{
int nCount = Convert.ToInt32(res2.ToString());
if (nCount==0)
{
conn1.Close();
conn2.Close();
return "没有数据";
}
}

//填充DataSet2
if (dataSet2!=null)
{
adapter2.Fill(dataSet2, tabString);
}

//复制数据
for (int i = 0; i < dataSet2.Tables[0].Rows.Count; i++)
{
dataSet1.Tables[0].LoadDataRow(dataSet2.Tables[0].Rows[i].ItemArray, false);
}

//将DataSet变换显示在与其关联的目标数据库
SqlCommandBuilder cb = new SqlCommandBuilder(adapter1);
adapter1.Update(dataSet1, tabString);
cb.RefreshSchema();

return "表" + tabString + "复制成功!";
conn1.Close();
conn2.Close();
}

public bool IsReusable
{
get
{
return false;
}
}
}
}

最新文章

  1. 【BZOJ2318】Spoj4060 game with probability Problem 概率
  2. 深入理解JavaScript定时机制和定时器注意问题
  3. Introducing Windows 10 Editions(Windows10版本介绍)
  4. CRC校验代码实现
  5. POJ 1742 Coins(多重背包) DP
  6. GDI+ 对象释放崩溃的问题
  7. 浅谈web网站架构演变过程(转)
  8. iOS 之 支付
  9. React翻译官网文档之JSX
  10. 弹性布局flex
  11. 读书笔记:《HTML5开发手册》-- 现存元素的变化
  12. Hadoop 单表关联
  13. 例:判断是不是自有属性hasOwnProperty方法
  14. iOS scrollsToTop属性失效
  15. 导入Excel文件
  16. CTR预估中GBDT与LR融合方案
  17. CRM 更新解决方案之注意事项
  18. Odoo进销存(采购、销售、仓库)入门教程 - 上
  19. 基于Axis1.4的webservice接口开发(接口调用)
  20. django-重写User模型

热门文章

  1. Project Server调用PSI关闭任务以进行更新锁定任务
  2. angularJS中自定义指令
  3. 在重命名SqlServer数据库时,报5030错误的解决办法
  4. maven 打JAR包资源文件指定路径与文件读取
  5. R: data.frame 生成、操作数组。重命名、增、删、改
  6. R: 数据结构、数据类型的描述。
  7. 33、VCF格式
  8. geneid/genesymbol/ensemblid等之间的转换
  9. 14.Nginx 文件名逻辑漏洞(CVE-2013-4547)
  10. C++哪些函数不能是虚函数