unity读取mysql5.7版本示例

使用了miniexcel插件,与mydata.dll 。

using MiniExcelLibs;
using MySql.Data.MySqlClient;
using System.Collections.Generic;
using System.Data;
using System.Text;
using UnityEngine;public class LoadMySQL_虚拟仿真 : DataLayerBase<Dictionary<string, string>>
{public static LoadMySQL_虚拟仿真 Ins;string server = "192.169.4.102";string database = "avatar_model";string user = "model";string password = "avatar@model";MySqlConnection connection;string SQL = @"SELECT {0} FROM {1}";string SetMysql =@"
UPDATE {1}
SET {0} = '{2}'
WHERE {0} = '{0}';
";public class XNFZ_Data{public string TagName { get; set; }public string DataType { get; set; }public string ReadWrite { get; set; }public string ScanRate_ms { get; set; }public string Description { get; set; }public string Value { get; set; }}List<string> sqlList = new List<string>();public static Dictionary<string, XNFZ_Data> XNFZ_keyValues = new Dictionary<string, XNFZ_Data>();protected override void Awake(){base.Awake();Ins = this;LoadExcel(Application.streamingAssetsPath + "/宁波数据展示点位V3.xlsx", "IDEAS");joinFind();foreach (var item in XNFZ_keyValues){sqlList.Add(item.Key);}}protected override void RequestData(ref Dictionary<string, string> Data){if (XNFZ_keyValues.Count > 0){StringBuilderSQL(sqlList, "model_data_display_point");}}public void SetDataValue_修改数据库字段值(string tagname,string value){// SetMysql = string.Format(SetMysql,);}void joinFind(){string sqlSer = "server = " + server + ";" + "Database =" + database + ";" +"user =" + user + ";" +"password =" + password;connection = new MySqlConnection(sqlSer);try{connection.Open();Debug.Log("数据库连接成功!!!!!");}catch (System.Exception e){Debug.LogError("数据库连接失败" + e.Message);return;}if (connection.State != ConnectionState.Open)return;}void StringBuilderSQL(List<string> sqlList, string sqlcharname){StringBuilder sql = new StringBuilder();StringBuilder queryTagName = new StringBuilder();for (int i = 0; i < sqlList.Count; i++){queryTagName.Append(sqlList[i]);queryTagName.Append(",");}queryTagName.Remove(queryTagName.Length - 1, 1);sql.Append(string.Format(SQL, queryTagName, sqlcharname));DataSet ds = Query(sql.ToString());if (ds != null && ds.Tables.Count > 0){for (int i = 0; i < sqlList.Count; i++){string sqlTagName = ds.Tables[0].Rows[0][sqlList[i]].ToString().Replace(" ", "");foreach (var item in XNFZ_keyValues){if (string.Equals(sqlList[i], item.Key)){if (string.IsNullOrEmpty(sqlTagName)){Debug.Log(sqlList[i]);}else{item.Value.Value = sqlTagName;}}}}}}public DataSet Query(string sql){DataSet ds = new DataSet();MySqlCommand command = new MySqlCommand(sql, connection);command.CommandTimeout = 100;MySqlDataAdapter adapter = new MySqlDataAdapter(command);adapter.Fill(ds);return ds;}void LoadExcel(string path, string sheel){var rows = MiniExcel.Query<XNFZ_Data>(path, sheel, ExcelType.XLSX, "A1");//using (var stream = File.OpenRead(path)) //{//    var rows = stream.Query<XNFZ_Data>(); if (rows != null){foreach (XNFZ_Data item in rows){if (!string.IsNullOrEmpty(item.TagName)){XNFZ_keyValues.Add(item.TagName, item);}else{Debug.LogError(sheel + $"中重复或空的DataName:{item.TagName}");}}}else{Debug.LogError("excel加载失败");}}public static XNFZ_Data GetDataName(string dataname){if (XNFZ_keyValues.ContainsKey(dataname)){return XNFZ_keyValues[dataname];}else { Debug.Log("字典中不包含" + dataname); return null; }}protected override void OnDisable(){base.OnDisable();connection.Close();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络(CNN)的层次结构

卷积神经网络&#xff08;CNN&#xff09;是一种以其处理图像和视频数据的能力而闻名的深度学习模型&#xff0c;其基本结构通常包括以下几个层次&#xff0c;每个层次都有其特定的功能和作用&#xff1a; 1. 输入层&#xff08;Input Layer&#xff09;&#xff1a; 卷积神经网…

图像与文字的创意融合:使用Python进行视觉艺术创作

原图&#xff1a; 处理过的&#xff1a; import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont import os# 字体文件路径 vfont ./fonts/方正像素字体.ttfdef text_paint(img_path, text, font_path, font_size):# 使用 OpenCV 加载图片img cv2.i…

【Markdown编辑器】

Markdown编辑器 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

Vue 90 ,Element 13 ,Vue + Element UI 中 el-switch 使用小细节解析,避免入坑(获取后端的数据类型自动转变)

目录 前言 在开发过程中&#xff0c;我们经常遇到一些看似简单的问题&#xff0c;但有时正是这些细节问题让我们头疼不已。今天&#xff0c;我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑&#xff0c;希望大家在使用时能够避免。 一. 问题背景 二. 问题分…

el-select 修改样式

这样漂亮的页面&#xff0c;搭配的却是一个白色风格的下拉框 &#xff0c;这也过于刺眼。。。 调整后样式为&#xff1a; 灯红酒绿总有人看着眼杂&#xff0c;但将风格统一终究是上上选择。下面来处理这个问题。 分为两部分。 第一部分&#xff1a;是修改触发框的样式 第二部…

柔性数组详解+代码展示

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…

【测试工具JMeter篇】JMeter性能测试入门级教程(七):JMeter断言

一、前言 在 JMeter 中&#xff0c;断言元件&#xff08;Assertion&#xff09;用于验证测试结果是否符合预期。断言元件可以检查服务器的响应数据&#xff0c;以确保它们符合期望的模式或值&#xff0c;从而验证性能测试脚本的正确性。断言元件通常在每个请求的响应中添加&am…

【Linux课程学习】:站在文件系统之上理解:软硬链接,软硬链接的区别

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 Linux学习笔记&#xff1a; https://blog.csdn.net/d…

【森林生态系统揭秘】用R语言解锁森林结构、功能与稳定性分析!生物多样性与群落组成分析、路径分析、群落稳定性分析等

目录 专题一 理论讲解 专题二 数据获取与处理 专题三 生物多样性与群落组成分析 专题四 机器学习在群落分析中的应用 专题五 路径分析和结构方程模型&#xff08;SEM&#xff09; 专题六 群落稳定性分析 专题七 案例分析与写作指南 在生态学研究中&#xff0c;森林生态系…

无分类编址的IPv4地址

/20含义&#xff1a;前20比特位为网络号&#xff0c;后面32-2012为主机号 路由聚合&#xff1a;找共同前缀 所有可分配地址的主机都能接收广播地址&#xff0c;

初始化列表与Static成员

一、再谈构造函数 1.1构造函数体赋值 在创建对象时&#xff0c;编译器会调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 class Date { private:int _year;int _month;int _day; public:Date(int year, int month, int day){_year year;_month month;_day …

THENA大涨将对整个DeFi市场产生怎样的影响?

引言 近期&#xff0c;区块链行业的一个热门项目——THENA&#xff08;THE&#xff09;代币&#xff0c;在短时间内吸引了大量投资者的目光。THE代币的价格在短短几个月内经历了显著的上涨&#xff0c;引发了市场对其背后机制的浓厚兴趣。而在THENA生态系统的成功背后&#xf…

从被动响应到主动帮助,ProActive Agent开启人机交互新篇章

在人工智能领域&#xff0c;我们正见证着一场革命性的变革。传统的AI助手&#xff0c;如ChatGPT&#xff0c;需要明确的指令才能执行任务。但现在&#xff0c;清华大学联合面壁智能等团队提出了一种全新的主动式Agent交互范式——ProActive Agent&#xff0c;它能够主动观察环境…

SpringBoot(一)

Springboot(一) 什么是SpringBoot SpringBoot是Spring项目中的一个子工程&#xff0c;与Spring-famework同属于Spring的产品 用一些固定的方式来构建生产级别的Spring应用。SpringBoot推崇约定大于配置的方式以便于能够尽可能快速的启动并运行程序 我们把Spring Boot称为搭建程…

PDF与PDF/A的区别及如何使用Python实现它们之间的相互转换

目录 概述 PDF/A 是什么&#xff1f;与 PDF 有何不同&#xff1f; 用于实现 PDF 与 PDF/A 相互转换的 Python 库 Python 实现 PDF 转 PDF/A 将 PDF 转换为 PDF/A-1a 将 PDF 转换为 PDF/A-1b 将 PDF 转换为 PDF/A-2a 将 PDF 转换为 PDF/A-2b 将 PDF 转换为 PDF/A-3a 将…

【设计模式系列】备忘录模式(十九)

目录 一、什么是备忘录模式 二、备忘录模式的角色 三、备忘录模式的典型应用场景 四、备忘录模式在Calendar中的应用 一、什么是备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许在不暴露对象内部状态的情况下保存和恢…

window 下用Ollama 开发一个简单文档问答系统

文档问答系统 本系统利用先进的语言模型和检索技术&#xff0c;为用户提供基于上传文件内容的问答服务。支持多种文件格式&#xff0c;包括 Word、PDF、CSV、SQL 和 TXT 文件。 功能介绍 文件上传 用户可以同时上传多个文件。支持的文件类型包括&#xff1a;.doc, .docx, .…

全国296个地级市平均房价数据(2000-2022年)

全国296个地级市平均房价数据(2000-2022年)&#xff0c;包括面板数据和截面数据 点击下载 1、数据来源&#xff1a;安居客、房天下、房价行情网等住房交易网页整理 2、时间跨度&#xff1a;2000-2022年 3、区域范围&#xff1a;全国296个地级市 4、缺失说明&#xff1a;西…

贴片式内存卡 ​SD NAND​

SD NAND FLASH 贴片式SD卡 贴片式t卡 存储芯片 1. 什么是贴片式内存卡 贴片式内存卡是指一种将内存芯片直接贴装在电路板上的内存卡类型。与传统的插针式内存卡&#xff08;如SD卡、MicroSD卡&#xff09;不同&#xff0c;贴片式内存卡通常不具有外部引脚或接口&#xff0c;而…

C—操作符易错点

strlen与sizeof strlen求的是大小&#xff0c;包含“\0” strlen求的是&#xff0c;长度不包括“\0” 注意&#xff1a;空格也算一个字符 操作符“/”(除法&#xff09; 对于除法操作符来说&#xff0c;两边都是整数&#xff0c;那么就是整数除法 如果想计算出小数&#x…