第一次做采集Json的还简单一些但是XML的简直了.........

JSON

  1 //采集数据
  2         public string GetBetRecordToRepository()//随便你返回什么
  3         {
  4             try
  5             {
  6                 DateTime startTime = DateTime.Now;
  7                 var Date = startTime;                             //日期中的时间段
  8                 string playDate = Date.ToString("yyyy-MM-ddTHH:mm:ss");//开始时间,设置时间格式
  9                 Date = Date.AddMinutes(-15);//时间间隔,有什么比限制15分钟采集一次,调试的时候返回空更丧的呢!!
 10                 string endDate = Date.ToString("yyyy-MM-ddTHH:mm:ss");//结束时间
 11                 int k = 0;//因为我是15分钟采集,所以设置变量确定时间
 12                 for (int j = 0; j < Time;)//Time是采集时间比如为48,那就是采集当前时间到昨天的当前时间
 13                 {
 14                     k += 1;
 15                     if (k == 4)//一小时
 16                     {
 17                         j += 1;
 18                         k = 0;
 19                     }
 20  23                     //    //日期
 24                     //    var Date = DateTime.Now.AddHours(Time); //打注释的是另一种方法使用do{}while()循环,注意我在写这个的时候为了区分所以do是从当前时间往回采集所以使用do应改为-15 25                     //var NowDate = DateTime.Now;
 26                     ////日期中的时间段
 27                     //string playDate = Date.ToString("yyyy-MM-ddTHH:mm:ss");//开始时间
 28                     //Date = Date.AddMinutes(15);
 29                     //string endDate = Date.ToString("yyyy-MM-ddTHH:mm:ss");//结束时间
 30                     //do
 31                     //{
 32                     //设置路径获取值
 33                     string PostUrl = "采集路径";
 34                     string JsonStr = "采集参数";
 35                     string retData = string.Empty;
 36                     retData = UtilsHelper.HttpWebRequest(PostUrl, JsonStr, Encoding.UTF8, contentType: "application/json", method: "POST");//请求服务器,详细请看我另一篇(.NET接入接口) 37                     //判断返回值是否为空 38                     if (retData != "[]")//判断根据自己的判断
 39                     {
 40                         //实例化表
 41
 42                         string Sql = string.Empty;
 43                         string St = retData.ToString();
 44                         var C = from c in St
 45                                 where
 46                                     c == '}'
 47                                 select c;
 48                         int Count = C.Count();//获取返回Json个数
 49                         string S = retData;
 50                         int index1, index2;//记录Json开始和结束位置
 51                         string Str;
 52                         //循环取值
 53                         for (int i = 0; i < Count; i++)
 54                         {
 55                             index1 = S.IndexOf("{");
 56                             index2 = S.IndexOf("}");
 57                             Str = S.Substring(index1, index2 - i);
 58                             S = S.Replace(Str, "");
 59                             JObject jo = (JObject)JsonConvert.DeserializeObject(Str);//将返回的字符串转换为Jaon格式
 60                             Table Bmodel = new Table();//实例化一个表                    Bmodel.id=Convert.toInt32(jo["id"].tostring()); 62                             Bmodel.username = jo["name"].ToString();                   ............................................
 93                             //生成SQl语句,查看是否已经有该数据
 94                             Sql = "select count(*) from Table where ID='" + Bmodel.id + "'";
 95                             if (Convert.ToInt32(DbHelperSQL.GetSingle(Sql)) == 0)
 96                             {
 97                                 Sql = "INSERT INTO Table(ID,username,....." +
 99                                     "VALUES("+Bmodel.id+",'"+Bmodel.username+"',......)";//注意将值的类型与数据库对应
104                             }
105                             else
106                             {
107                                 Sql = "UPDATE AGBetOrder SET username='" + Bmodel.username + "',...... where ID=" + Bmodel.id ;
108                             }110                             //执行SQl语句
111                             DbHelperSQL.ExecuteSql(Sql);
112                         }
113                     }
114                     //重新获取日期中的下一个时间段
115                     playDate = Date.ToString("yyyy-MM-ddTHH:mm:ss");//开始时间
116                     Date = Date.AddMinutes(-15);
117                     endDate = Date.ToString("yyyy-MM-ddTHH:mm:ss");//结束时间
118
119                     //} while (Date < NowDate);
120                     //return MSMPRetMsgFactory.SucceedMsg();
121                 }
122             }
123             catch (Exception ex)
124             {
125                 LogHelper.WriteErrorLog(ex);//抓取错误
126                 return "NO";
127             }
128             return "OK";
129         }

XML  1 public string GetBetRecordToRepository  2 {  3 try

  4             {
  5                 DateTime startTime = DateTime.Now;//当前时间
  6                 for (int i = 0; i < Time; i += 4)//时间段
  7                 {
  8                     startTime = startTime.AddHours(-4);
  9                     DateTime endTime = startTime.AddHours(4);
 10
 11                     string url = "采集地址";
 12                     string retData = UtilsHelper.HttpWebRequest(url, null, Encoding.UTF8);              XmlDocument a = new XmlDocument();
 23                     a.LoadXml(retData);
 24                     XmlNode inputNode;
 25                     string SQL_base;
 26                     string Str = retData;
 27                     string r = Str.Replace("normal_wager_", "");
 28                     int count = ((Str.Length - r.Length) / 13) / 2;
 29
 30                     if (retData.IndexOf("success") > 0)
 31                     {
 32                         //创建一个实体类
 33                         STable Smodel = new STable();
 34                         //创建一个XmlDocument类型数据
 35                         XmlDocument XmlD = new XmlDocument();
 36                         XmlD.LoadXml(retData);
 37                         inputNode = XmlD.SelectSingleNode("success");
 38                         //获取节点,将节点转换为元素,便于得到节点的属性值
 39                         XmlNodeList XnA = inputNode.ChildNodes;//1
 40                         XmlNodeList XnB = XnA.Item(1).ChildNodes;
 41                         //取值放入实体类
 42                         Smodel.request_tid = Convert.ToInt32(XnB.Item(0).InnerText);//搜索起点
 43                         Smodel.latest_tid = XnB.Item(1).InnerText;//搜索起点
 44                                                                   //获取节点,将节点转换为元素,便于得到节点的属性值
 46                         XnB = XnA.Item(4).ChildNodes;
 47                         XmlNodeList XnC = XnB.Item(0).ChildNodes;//3.1
 48                                                                  //取值放入实体类
 49                         Smodel.normal_parlay = XnC.Item(0).InnerText;//普通注单/过关注单
 50                         for (int j = 1; j <= count; j++)
 51                         {
 52                             XnB = XnA.Item(2).ChildNodes;
 53                             //取值放入实体类
 54                             Smodel.total_wager = Convert.ToInt32(XnB.Item(1).InnerText) + j - 1;//注单总数
 55
 56                             //创建一个实体类
 57                             STable Smodel2 = new STable();
 58
 59                             //获取节点,将节点转换为元素,便于得到节点的属性值
 60                             XmlNodeList XnD = XnC.Item(j).ChildNodes;//3.2
 61                                                                      //取值放入实体类
 62                             Smodel2.play_type = XnD.Item(0).InnerText;//游戏编号                    .......................................................101                             //生成Sql语句
102                             SQL_base = "SELECT COUNT(*) from STable WHERE transactionid='" + Smodel2.transactionid + "'";//查询是否已经有这一条记录
103                             if (Convert.ToInt32(DbHelperSQL.GetSingle(SQL_base)) == 1)
104                                 SQL_base = "UPDATE STable set request_tid=" + Smodel.request_tid + ",.............";
105                             else
106                                 SQL_base = "insert into STable(................)VALUES(............)";108                             //执行SQl语句
109                             DbHelperSQL.ExecuteSql(SQL_base);
110                         }
111                     }
112                 }
113             }
114             catch (Exception err)
115             {
116                 LogHelper.WriteErrorLog(err);
117             }
118             return MSMPRetMsgFactory.SucceedMsg();
119         }

PS:Json呢是直接就键值对取值,XML呢要一层一层的分开取值,绕得晕乎乎的,小菜一只,请多多指教

转载于:https://www.cnblogs.com/ZxtIsCnblogs/p/7683290.html

.NET采集数据,放入数据库总结相关推荐

  1. python的scrapy爬虫可以将爬去的数据放入数据库吗_Python基于Scrapy的爬虫 数据采集(写入数据库)...

    上一节已经学了如何在spider里面对网页源码进行数据过滤. 这一节将继续学习scrapy的另一个组件-pipeline,用来2次处理数据 (本节中将以储存到mysql数据库为例子) 虽然scrapy ...

  2. 怎样把Image数据放入数据库

    用image类型 方法: 1.建立过程 CREATE   PROCEDURE   sp_textcopy   (       @srvname         varchar   (30),      ...

  3. SpringBoot将数据放入Excel里面通过浏览器直接下载到本地

    SpringBoot将数据放入Excel里面通过浏览器直接下载到本地 说明 依赖 代码 效果 说明 以前做java方面的导出下载的时候,都是先把数据导出到linux服务器里面的某个目录,然后才是通过浏 ...

  4. php批量上传图片并带参数,php批量上传图片并把图片名放入数据库

    前几天工作中要做这样一个功能,有八百多个系统 生成的会员:给这八百多个系统会员上传图片:然后把图片名放入数据库. 第一步: 第一步肯定是首先把图片上传到对应的图片目录下,直接用框架中已经有的上传类: ...

  5. flink 处理迟到数据(Trigger、设置水位线延迟时间、允许窗口处理迟到数据、将迟到数据放入侧输出流、代码示例、迟到数据触发窗口计算重复结果处理)

    文章目录 前言 1.Trigger 2.处理迟到数据 2.1 设置水位线延迟时间 2.2 允许窗口处理迟到数据 2.3 将迟到数据放入侧输出流 3.实操 3.1 代码示例 3.2 中间遇到的异常 3. ...

  6. domino中实现将本地文件放入数据库中的LS代码

    domino中实现将本地文件放入数据库中的LS代码 Sub InitializeDim session As New NotesSessionDim db As NotesDatabaseDim do ...

  7. python爬取豆瓣电影top250_利用python爬取豆瓣电影Top250,并把数据放入MySQL数据库...

    在学习了python基础后,一心想着快速入门爬虫,因为我就是为爬虫而学的python,所以就找了这个豆瓣电影来爬取.好了,废话不多说,进入正题 1.找到网页并分析网页结构 首先进入豆瓣电影Top250 ...

  8. vc++64位系统下long的长度为4个字节_新来的妹子把几百万数据放入了内存,系统立马爆了...

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...

  9. 新来的妹子把几百万数据放入了内存,系统立马爆了

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...

最新文章

  1. ffmpeg-win32-v3.2.4 下载_iTools下载|iTools 4.4.3.4 官方中文版
  2. 【电商】几种电商模式及特点
  3. 记一次Spring boot 和Vue的前后端分离的入门培训
  4. 实验四 栈和队列的基本操作
  5. ajax传输json数据格式乱码_解决Ajax加载JSon数据中文乱码问题
  6. 控件UI性能调优 -- SizeChanged不是万能的
  7. as cast float server sql_SQL语言在数据工程(Data Engineering)中的运用(一)
  8. JavaScript基础知识。
  9. python sklearn做文本分类
  10. 深入研究ActivityMQ
  11. matlab三维网格绘图函数mesh、meshc、mesh、zmeshgrid、surf【matlab图行绘制五】
  12. 计算机网络基本知识(二):网络拓扑结构
  13. 计算机十六进制是什么意思,2进制和16进制是什么意思?它们之间如何换算?
  14. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 6笔记
  15. mac 安装typescript
  16. 魔兽私服Trinitycore架构设计分析之一
  17. linux java 缓存服务器,linux服务器缓存环境memcached筹建及应用(java)
  18. Vue.filter过滤器存储单位换算按B、KB 、M、 G显示字节大小
  19. Flowable入门系列文章47 - 电子邮件任务
  20. 开源库实现SwitchButton开关按钮

热门文章

  1. 带你自学Python系列(十三):Python函数的用法(三)
  2. 《Python编程从入门到实践》第9章类动手试一试答案(附代码)
  3. jav中什么是组织java程序_Java程序的执行过程中用到一套JDK工具,其中javaprof.exe是指()。A.Java调试器B.Java剖析工具C.Jav...
  4. 数据结构期末复习之排序
  5. IAI OpenLab工业人工智能开放实验室白皮书(一)
  6. ReedShepp与Dubins path的matlab实现
  7. python正则表达式数字开头_Python正则表达式总结
  8. Macbook Pro笔记本双系统MacOS和Windows切换默认启动
  9. jQuery按钮隐藏与显示
  10. selenium元素定位之 动态id, class元素定位