zoukankan      html  css  js  c++  java
  • WebGL连接mysql数据库,以及读取服务器文件的流程(局域网)

    1.1 发布WebAPI作为连接数据库的中转站

    (1)创建WebAPI项目,VS2017

    (2)WebAPI中主要是Post和Get方法,通过Post传入数据库连接参数和要查询的表名,通过Get方法获取查询内容。

    using MySql.Data.MySqlClient;
    using System;
    using System.Data;
    using System.Web.Http;
    using WebAPI.Models;
    using Newtonsoft.Json;
    
    namespace WebAPI.Controllers
    {
        public class InterfaceController : ApiController
        {
    
            private static string connMysql;
            private static string chartName;
            public void Post(InterfaceValue chart)
            {
    connMysql=chart.Connectsql; chartName
    = chart.ChartsName; } public string Get() { DataTable tbl; try { using (MySqlConnection mysqls=new MySqlConnection(connMysql)) { mysqls.Open(); DataSet dataSet = new DataSet(); MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter("select * from " + chartName, mysqls); sqlDataAdapter.Fill(dataSet); tbl = dataSet.Tables[0]; mysqls.Close(); } } catch (Exception ex) { return ex.ToString(); } return JsonConvert.SerializeObject(tbl); }
    public static MySqlCommand getSqlCommand(String sql, MySqlConnection mysql) { MySqlCommand mySqlCommand = new MySqlCommand(sql, mysql); return mySqlCommand; } } }
    namespace WebAPI.Models
    {
        public class InterfaceValue
        {

    public string Connectsql { get; set; } public string ChartsName { get; set; } } }

    (3)发布  https://www.pianshen.com/article/69931536317/

    (4)IIS中配置WebAPI网站

    1.2 获取WebGl文件夹下streamingAssets中.json文件内容

     1   private void Start()
     2     {
     3 
     4         StartCoroutine(GetData("test.json"));
     5     }
     6 
     7 IEnumerator GetData(string fileName)
     8     {
     9         var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, fileName));
    10         UnityWebRequest www = UnityWebRequest.Get(uri);
    11         yield return www.SendWebRequest();
    12 
    13         if (www.isNetworkError || www.isHttpError)
    14         {
    15             Debug.Log(www.error);
    16         }
    17         else
    18         {
    19 
    20             //Debug.Log(www.downloadHandler.text);
    21             string jsonStr = www.downloadHandler.text;
    22             files = JsonConvert.DeserializeObject<List<string>>(jsonStr);
    23 
    24         }
    25     }

    根据获取到的文本内容得到:1、数据库连接字段connect 2、要查询的表名chartName

    1.3 使用Post方法和Get方法连接WebAPI

      private bool arrived=true;
      private  URL = "http://192.XXX.XX.XXX:8081/api/interface";
     1    IEnumerator SetPost1(string connect)
     2     {
     3                    
     4             while (!arrived)
     5             {
     6                 yield return new WaitForSeconds(0.01f);
     7             }
     8             arrived = false;
     9             WWWForm form = new WWWForm();
    11 form.AddField("Connectsql", connect); 12 form.AddField("ChartsName",chartName); 13 //Post方法 14 UnityWebRequest www = UnityWebRequest.Post(URL, form); 15 //www.uploadHandler.contentType = "application/json"; 16 yield return www.SendWebRequest(); 17 18 if (www.isNetworkError || www.isHttpError) 19 { 20 Debug.Log(www.error); 22 }

    //Get方法
    23 UnityWebRequest webRequest = UnityWebRequest.Get(URL); 24 yield return webRequest.SendWebRequest(); 25 26 string[] pages = URL.Split('/'); 27 int page = pages.Length - 1; 28 if (webRequest.isNetworkError) 29 { 30 Debug.Log(pages[page] + ": Error: " + webRequest.error); 31 } 32 else 33 { 34 string dataStr = webRequest.downloadHandler.text.Replace("\", ""); 35 dataStr=dataStr.Replace(""", ""); 36 //将数据表的字符串结果转化成二维数组dataTable 37 //print("dataStr" + dataStr); 38 string[] str = dataStr.Split(':'); 39 int colIndex=0; 40 int rowIndex = 0; 41 string[,] dataTable = new string[int.Parse(rows) , int.Parse(cols)]; 42 for (int k = 1; k < str.Length; k++) 43 { 44 if (str[k].Contains("}")) 45 { 46 dataTable[rowIndex++,colIndex] = str[k].Substring(0, str[k].IndexOf('}')); 47 colIndex = 0; 48 } 49 else 50 { 51 dataTable[rowIndex,colIndex++] = str[k].Substring(0, str[k].IndexOf(',')); 52 } 53 } 54 } 55 56 }
    
    
    
    
    
  • 相关阅读:
    《jQuery源码解析》读书笔记(第一章:总体架构)
    无线开发学习笔记
    无线开发知识
    underscore源码了解
    Git 速查手册
    Jetpack Compose之隐藏Scaffold的BottomNavigation
    一种封装Retrofit的方法,可以自动解析Gson,回避Method return type must not include a type variable or wildcard: retrofit2.Call<T>的问题
    整理之Java容器
    整理之Fragment
    整理之BroadcaseReceiver
  • 原文地址:https://www.cnblogs.com/chenxiya/p/15246373.html
Copyright © 2011-2022 走看看