本地数据库用的是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. Microsoft Office ->> 完整卸载Office 2007

    今天用GHOST安装了Windows 8.1,结果发现预装了Office 2007,而且这个GHOST系统的Office 2007还不是很正规的安装手法安装的.它没有在注册表中注册.在打开控制面板后发 ...

  2. 设置导出的excel数据

    /** * 设置导出的excel数据 * @param type $objPHPExcel * @param type $colModel * @param type $grid */public f ...

  3. C++的extern关键字

    extern是一个声明,不是一个定义,A模块想应用B模块的一个函数或者变量,A模块包含B模块的头文件,并且在变量或者头文件前,加 extern,虽然编译的时候,找不到模块的定义,但是在连接的时候,会在 ...

  4. sql语句中where,have,on的区别

    一.where和on的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户.  在使用left jion时,on和where条件的区别如下:   1. ...

  5. 关于Could not obtain transaction-synchronized Session for current thread 这个异常。

    Could not obtain transaction-synchronized Session for current thread 这个异常之前非常让我头大.对于网上的各种说法都试了一下反正都不 ...

  6. PHP数组和字符串相互转换以及判断字符串长度

    这里只介绍最常用的方法: $array=explode(separator,$string); $string=implode(glue,$array); explode() 函数用来将字符串打散成数 ...

  7. flex布局兼容性写法

    CSS样式 flex:定义布局为盒模型 flex-v:盒模型垂直布局 flex-1:子元素占据剩余的空间 flex-align-center:子元素垂直居中 flex-pack-center:子元素水 ...

  8. WIN10下的Docker安装

    1.什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...

  9. STM32F103 ucLinux开发之二(内核启动汇编代码分析)

    start_kernel之前的汇编代码分析 Boot中执行下面两句话之后,进入uclinux内核. theKernel = (void (*)(int, int, unsigned int))((ui ...

  10. 一点一点看JDK源码(二)java.util.List

    一点一点看JDK源码(二)java.util.List liuyuhang原创,未经允许进制转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 1.综述 List译为表,一览表, ...