本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面。
第三方数据库为增量,每次读取要记录读取的最大位置。我是保存在本地txt文件里面。

                       //保存的路径  
string filepath = Server.MapPath("~/temp/TestTxt.txt");
//读取上次记录
//判断txt文件是否存在
string strOpen = "";
if (!File.Exists(filepath))
{
//创建txt
StreamWriter strmsave = new StreamWriter(filepath, true, System.Text.Encoding.GetEncoding("gb2312"));
strmsave.Write("");
strmsave.Close();
StreamReader strmopen = new StreamReader(filepath, System.Text.Encoding.GetEncoding("gb2312"));
strOpen = strmopen.ReadToEnd();
strmopen.Close();
}
else
{
StreamReader strmopen = new StreamReader(filepath, System.Text.Encoding.GetEncoding("gb2312"));
strOpen = strmopen.ReadToEnd();
strmopen.Close();
}

int maxidnumber = 0;
                    if (!string.IsNullOrEmpty(strOpen))
                          {
                       maxidnumber = Convert.ToInt32(strOpen);
                          }

  string sql = "select top " + System.Configuration.ConfigurationManager.AppSettings["ReadCount"] + " * from User_Infor_Message where idnumber>" + maxidnumber + " order by idnumber";
DataTable tab1 = DBHelper.GetDataSetBySql(sql).Tables[];
int tempid = ;
foreach (DataRow item in tab1.Rows)
{
if (Convert.ToInt32(item["idnumber"]) > maxidnumber)
{
tempid = Convert.ToInt32(item["idnumber"]);
}
if (tab.Rows.Count > )
{
string MessageType = item["MessageType"].ToString();//数据状态
string outid = item["IDSERIAL"].ToString();//证件号,匹配字段
string cardnumber = item["CARDID"].ToString();//物理卡号
string strSql = "";
if (MessageType != "" || MessageType != "")
{
DataRow[] rows = tab.Select("onecard='" + outid + "'");
if (rows.Length > )
{
string info_id = rows[][].ToString();//获取用户id
//更新数据
strSql = "update sub_file_relation set cardnumber='" + cardnumber + "' where info_id='" + info_id + "'";
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
}
else
{
//新增数据
}
}
}
}
if (tab1.Rows.Count > )
{
maxidnumber = Convert.ToInt32(tempid);
//写入记录数据
StreamWriter strmsave1 = new StreamWriter(filepath, false, System.Text.Encoding.GetEncoding("gb2312"));
strmsave1.Write(maxidnumber);
strmsave1.Close();
}
//ClientScript.RegisterStartupScript(this.GetType(), "123", "<script>alert('数据同步完成')</script>");
trans.Commit();

更新数据的主要代码

本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面。

.net第三方数据库物理卡号同步功能实现的更多相关文章

  1. Xamarin如何使用终端设备的NFC功能传递卡号等信息给Web页面(Android)

    一.前提条件,App必须具有NFC权限. 二.项目中加入监控类NFCCatchActivity.cs [Activity(Label = "NFCCatch",Theme = &q ...

  2. Navicat premium对数据库的结构同步和数据同步功能

    一.在目标数据库新建一个相同的数据库名. 二.工具-->结构同步. 三.填写源数据库和目标数据库. 四.点击比对 五.点击部署 六.点击运行 七.点击关闭.此时源数据库的结构已经同步到目标数据库 ...

  3. 实现两个MySQL数据库之间的主从同步

    一.    概述MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能二.    环境操作系统:Linux 2. ...

  4. sql数据库发布、订阅同步方式操作

    Sql数据库发布订阅分为两个步骤:1.发布.2.订阅.首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅. 一.发布. 发布需要用实际的服务器名称,不能使用 ...

  5. sqlserver卡号段分组

    之前给上海一家电子商务公司做一个卖卡系统,遇到了卡号段分组的问题.刚开始没什么好的实现方法,遂在博客园求助但未果,没法自己研究sql,终于搞定. 问题描述: 有个卡库存表,有个卡号字段,假设数据:16 ...

  6. sql server2008数据库复制实现数据同步常见问题

    sql server2008数据库复制实现数据同步常见问题 在原作者基础上追加 sql server2008数据库复制实现数据同步常见问题 23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生 ...

  7. SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)

    SQL SERVER 基于数据库镜像的主从同步 Author:chaoqun.guo    createtime:2019-03-26 目录 SQL SERVER 基于数据库镜像的主从同步... 1 ...

  8. windows的磁盘操作之四——根据逻辑分区号获得物理磁盘号(转)

    第一节中我们谈到了磁盘设备名称的两种形式: 对于物理驱动器x,形式为\\.\PhysicalDriveX,编号从0开始,例如 名称 含义 \\.\PhysicalDrive0 打开第一个物理驱动器 \ ...

  9. 【实操笔记】MySQL主从同步功能实现

    写在前边: 这两天来了个需求,配置部署两台服务器的MySQL数据同步,折腾了两天查了很多相关资料,一直连不上,后来发现其实是数据库授权的ip有问题,我们用的服务器是机房中的虚拟机加上反向代理出来的,坑 ...

随机推荐

  1. MyEclipse打开JSP文件报"Failed to create the part's controls"解决方法汇总

    有时候,打开别人的开发环境中导过来的项目的JSP文件,会出现“Failed to create the part's controls”的错误! 解决的方法有: 方法1:关闭myeclipse的jsp ...

  2. html5自我总结

    2017年7月30日 合抱之木,生于毫末.九层之台,起于累土.软件行业要熟记和训练的东西有很多,在此,写一下如何快速搭建html及自我见解(这里只介绍我自己用到的,还有部分存在但是用不到的就不讲解了) ...

  3. python 线程中的局部变量ThreadLocal

    一个线程使用自己的局部变量比使用全局变量好局部变量只有线程自己能看见,不会影响其他线程全局变量的修改必须加锁 ThreadLocal 线程局部变量 import threading # 创建全局Thr ...

  4. June 23rd 2017 Week 25th Friday

    Life doesn't get easier, you just get stronger. 生活从未变得轻松,是你在一点一点变得坚强. So in the same way we can get ...

  5. 洗牌算法shuffle

    对这个问题的研究始于一次在群里看到朋友发的洗牌面试题.当时也不知道具体的解法如何,于是随口回了一句:每次从剩下的数字中随机一个.过后找相关资料了解了下,洗牌算法大致有3种,按发明时间先后顺序如下: 一 ...

  6. 文件是数据(字节)流的抽象-为什么C++中会把文件操作抽象为fstream?

    这不过是返祖罢了.正确的问题是为什么会把数据流抽象成文件. 设备-字节流-文件. 一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列). 文件抽象为数据流一 ...

  7. 14、SpringBoot-CRUD错误处理机制(1)

    一.springboot默认的处理机制 1.浏览器返回一个错误的页面 默认处理错误:返回一个错误的页面: 包括错误类型.时间......   2.其他客户端访问 默认响应一个json数据 原理: 错误 ...

  8. PAT——1003. 我要通过!

    “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1 ...

  9. 【luogu P3623 [APIO2008]免费道路】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3623 说是对克鲁斯卡尔的透彻性理解 正解: 先考虑加入水泥路,然后再考虑加入剩下必须要加入的最少鹅卵石路. ...

  10. [置顶] Android 高级开发 源码 UI 缓存 网络

    1.Android 源码剖析 性能优化  开源代码 2.Android UI效果源码 3.http://mzh3344258.blog.51cto.com/1823534/d-3 4.微信公众平台开发 ...