当前位置: 首页 > news >正文

eqmx上读取数据处理以后添加到数据库中

目录

定义一些静态变量

定时器事件的处理器

订阅数据的执行器

处理json格式数据和将处理好的数据添加到数据库中

要求和最终效果

总结一下


定义一些静态变量
// 在这里都定义成全局的  一般都定义成静态的private static MqttClient mqttClient; // mqtt客户端 private static string mqttServer = "121.37.84.114"; // mqtt服务器地址private static string mqttClientId = "frank_writer"; // 客户端id 随便写private static string SubscribedTopic = "fb5756"; // 订阅主题//连接数据库字符串private static string connectionString = "Data Source=MOGFPLQEEJOTGON\\SQLEXPRESS;Initial Catalog=frank;User ID=frank;Password=root123";//  JObject用来生成一个JSON对象,简单来说就是生成”{}”,//  JArray用来生成一个JSON数组,也就是”[]”,//  JProperty用来生成一个JSON数据,格式为key/value的值,//  而JValue则直接生成一个JSON值private static JObject jsonObject; //private Timer timer;// 添加一个定时器
定时器事件的处理器
 private void File_access_date(object sender, EventArgs e) {//public MqttClient(string brokerHostName, int brokerPort, bool secure, X509Certificate caCert);// 四个参数   服务器ip   端口号   不需要  网络传输证书mqttClient = new MqttClient(mqttServer, 1883, false, null); //  连接服务器// 给客户端订阅数据 添加事件执行器mqttClient.MqttMsgPublishReceived += MqttClient_MqttMsgPublishReceived;// 给mqtt添加事件执行器mqttClient.Connect(mqttClientId); // 添加连接服务的id// 订阅主题,连接质量为2 ,这个两个数组目前就两个参数mqttClient.Subscribe(new string[] { SubscribedTopic }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });}
订阅数据的执行器
​// 事件具体处理器,处理具体读取的数据private static void MqttClient_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e){// Handle the message, e.g., write to SQL 获取json格式的数据string message = System.Text.Encoding.UTF8.GetString(e.Message);
​//MessageBox.Show("Subscribed to " + e.Message); 查看内容WriteToDatabase(message);// 写到数据库里面}
处理json格式数据和将处理好的数据添加到数据库中
 private static void WriteToDatabase(string data){// sql语句string sql = "INSERT INTO FLF800(REG001,REG002,REG003,REG004,REG005,REG006,REG007) VALUES (@REG001,@REG002,@REG003,@REG004,@REG005,@REG006,@REG007) ";string newDate = data.Replace("08", ""); //去掉多余的字符string endDate = newDate.Replace("-","");//去掉'-'字符JObject jsonObject = JObject.Parse(endDate);// 将字符串重新转为JSON格式的数据
​string senserDatas = jsonObject["sensorDatas"].ToString();//获取json数据的第一个元素
​// 转为json数据,转之前数据格式必须是一样的不可以又多余的格式,不然就会报错JArray jsonArray = JArray.Parse(senserDatas); // 将json其转化为数据int sum = jsonArray.Count; // 获取数据的大小Dictionary<string, string> dictionary = new Dictionary<string, string>();// 字典来存储数据// for (int i = 0; sum > 0;i++){jsonObject = jsonArray[i] as JObject;// 将每一个json元素重新转为json对象dictionary.Add(jsonObject["flag"].ToString(), jsonObject["value"].ToString());sum--;}
​//power = JsonConvert.DeserializeObject<PowerData>(endDate);
​using (SqlConnection conn = new SqlConnection(connectionString)){conn.Open();using (SqlCommand cmd = new SqlCommand(sql, conn)){cmd.Parameters.AddWithValue("@REG001", dictionary["REG001"]);cmd.Parameters.AddWithValue("@REG002", dictionary["REG002"]);cmd.Parameters.AddWithValue("@REG003", dictionary["REG003"]);cmd.Parameters.AddWithValue("@REG004", dictionary["REG004"]);cmd.Parameters.AddWithValue("@REG005", dictionary["REG005"]);cmd.Parameters.AddWithValue("@REG006", dictionary["REG0061"]);cmd.Parameters.AddWithValue("@REG007", dictionary["REG0062"]);cmd.ExecuteNonQuery();}}//MessageBox.Show("数据添加成功");}
要求和最终效果

总结一下
        //  JObject用来生成一个JSON对象,简单来说就是生成”{}”,调用静态方法,重新变成json对象JObject jsonObject = JObject.Parse(endDate);// 将字符串重新转为JSON格式的数据string senserDatas = jsonObject["sensorDatas"].ToString();//获取json数据的第一个元素//  JArray用来生成一个JSON数组,也就是”[]”,// 转为json数据,转之前数据格式必须是一样的不可以又多余的格式,不然就会报错JArray jsonArray = JArray.Parse(senserDatas); // 将json其转化为数据int sum = jsonArray.Count; // 获取数据的大小// 这两个没有用到,但在百度上查到了,在这里也提一下 //  JProperty用来生成一个JSON数据,格式为key/value的值,//  而JValue则直接生成一个JSON值

http://www.lryc.cn/news/407298.html

相关文章:

  • 【中项】系统集成项目管理工程师-第5章 软件工程-5.3软件设计
  • C++学习笔记-内联函数使用和含义
  • 数据库(MySQL)-视图、存储过程、触发器
  • js 优雅的实现模板方法设计模式
  • C语言——输入输出
  • 【微软蓝屏】微软Windows蓝屏问题汇总与应对解决策略
  • OpenCV图像滤波(2)均值平滑处理函数blur()的使用
  • Android lmkd机制详解
  • linux shell(中)
  • VMware三种网络模式---巨细
  • 力扣高频SQL 50 题(基础版)第一题
  • 2.1.卷积层
  • 网易《永劫无间》手游上线,掀起游戏界狂潮
  • RNN(一)——循环神经网络的实现
  • php 根据位置的经纬度计算距离
  • 17 Python常用内置函数——基本输入输出
  • 【Web】LitCTF 2024 题解(全)
  • 家政项目小程序的设计
  • electron TodoList网页应用打包成linux deb、AppImage应用
  • 【C语言】 使用fgets和fputs完成两个文件的拷贝
  • 使用PyTorch导出JIT模型:C++ API与libtorch实战
  • Python——异常捕获,传递及其抛出操作
  • 【Maven】 的继承机制
  • 微信小程序结合后端php发送模版消息
  • sqlalchemy报错sqlalchemy.orm.exc.DetachedInstanceError
  • 华为网络模拟器eNSP安装部署教程
  • 【React】详解样式控制:从基础到进阶应用的全面指南
  • 【ROS2】高级:安全-理解安全密钥库
  • C语言 ——— 数组指针的定义 数组指针的使用
  • opencascade AIS_ManipulatorOwner AIS_MediaPlayer源码学习