本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面。
第三方数据库为增量,每次读取要记录读取的最大位置。我是保存在本地txt文件里面。
1 //保存的路径 string filepath = Server.MapPath("~/temp/TestTxt.txt"); 2 //读取上次记录 3 //判断txt文件是否存在 4 string strOpen = ""; 5 if (!File.Exists(filepath)) 6 { 7 //创建txt 8 StreamWriter strmsave = new StreamWriter(filepath, true, System.Text.Encoding.GetEncoding("gb2312")); 9 strmsave.Write("0");10 strmsave.Close();11 StreamReader strmopen = new StreamReader(filepath, System.Text.Encoding.GetEncoding("gb2312"));12 strOpen = strmopen.ReadToEnd();13 strmopen.Close();14 }15 else16 {17 StreamReader strmopen = new StreamReader(filepath, System.Text.Encoding.GetEncoding("gb2312"));18 strOpen = strmopen.ReadToEnd();19 strmopen.Close();20 }
int maxidnumber = 0;
if (!string.IsNullOrEmpty(strOpen)) { maxidnumber = Convert.ToInt32(strOpen); }
1 string sql = "select top " + System.Configuration.ConfigurationManager.AppSettings["ReadCount"] + " * from User_Infor_Message where idnumber>" + maxidnumber + " order by idnumber"; 2 DataTable tab1 = DBHelper.GetDataSetBySql(sql).Tables[0]; 3 int tempid = 0; 4 foreach (DataRow item in tab1.Rows) 5 { 6 if (Convert.ToInt32(item["idnumber"]) > maxidnumber) 7 { 8 tempid = Convert.ToInt32(item["idnumber"]); 9 }10 if (tab.Rows.Count > 0)11 {12 string MessageType = item["MessageType"].ToString();//数据状态13 string outid = item["IDSERIAL"].ToString();//证件号,匹配字段14 string cardnumber = item["CARDID"].ToString();//物理卡号15 string strSql = "";16 if (MessageType != "0" || MessageType != "2")17 {18 DataRow[] rows = tab.Select("onecard='" + outid + "'");19 if (rows.Length > 0)20 {21 string info_id = rows[0][0].ToString();//获取用户id22 //更新数据23 strSql = "update sub_file_relation set cardnumber='" + cardnumber + "' where info_id='" + info_id + "'";24 cmd.CommandText = strSql;25 cmd.ExecuteNonQuery();26 }27 else28 {29 //新增数据30 }31 }32 }33 }34 if (tab1.Rows.Count > 0)35 {36 maxidnumber = Convert.ToInt32(tempid);37 //写入记录数据38 StreamWriter strmsave1 = new StreamWriter(filepath, false, System.Text.Encoding.GetEncoding("gb2312"));39 strmsave1.Write(maxidnumber);40 strmsave1.Close();41 }42 //ClientScript.RegisterStartupScript(this.GetType(), "123", "");43 trans.Commit();
更新数据的主要代码
本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面。