【问题标题】:c# Extract data from mysql in json formatc# 从mysql中提取json格式的数据
【发布时间】:2021-05-23 06:56:26
【问题描述】:

我正在开发一个 Windows 形式的应用程序,我的 mysql 数据库中有 json 数据,column = data '{"money":0,"goal":0,"advantage":0}' 我正在尝试将这些数据提取到表单中的标签中,label1.text="money";label2.text="goal";label3.text="advantage"; 我找不到足够的资源,我在这方面缺乏经验。 我将 Json nouget 包上传到我的表单中。 输出='{“钱”:0,“目标”:0,“优势”:0}' 我怎样才能得到我想要的 json 数据。 感谢您的帮助。

MySqlConnection baglan = new MySqlConnection("Server=localhost;Database=json;user=root;Pwd=;");
    private void Form1_Load(object sender, EventArgs e)
    {
        baglan.Open();
       MySqlCommand kom = new MySqlCommand("SELECT * FROM player_accounts", baglan);
        int count = Convert.ToInt32(kom.ExecuteScalar());
        if (count != 0)
        {

            MySqlDataReader oku = kom.ExecuteReader();
            while (oku.Read())
            {
                listBox1.Items.Add(oku["data"].ToString());

            }
            baglan.Close();
        }
    } 

【问题讨论】:

    标签: c# mysql json


    【解决方案1】:

    如果 JSON 数据始终相同,我将创建的第一件事是在 C# 领域中存储数据的模型类。

    所以,像这样::

    public class Data
    {
        public decimal money { get; set; }
        public int goal { get; set; }
        public int advantage { get; set; }
    }
    

    然后,在您的函数中,我会将 JSON 数据转换为这个新对象并从函数返回。为此,您需要转到 nuget 并安装 Newtonsoft.Json

    现在你可以这样写:

    var dbData = JsonConvert.DeserializeObject<Data>(oku["data"]);
    

    代替你的行:

    listBox1.Items.Add(oku["data"].ToString());
    

    函数看起来像这样:

    private List<Data> GetDatabaseData()
    {
        var resultList = new List<Data>();
    
        MySqlConnection baglan = new MySqlConnection("Server=localhost;Database=json;user=root;Pwd=;");
        baglan.Open();
        MySqlCommand kom = new MySqlCommand("SELECT * FROM player_accounts", baglan);
        int count = Convert.ToInt32(kom.ExecuteScalar());
        if (count != 0)
        {
            MySqlDataReader oku = kom.ExecuteReader();
            while (oku.Read())
            {
                var data JsonConvert.DeserializeObject<Data>(ku["data"].ToString());
                resultList.Add(data);
            }
            baglan.Close();
        }
    
        return resultList;
    }
    

    然后你可以像这样使用这个函数:

    var dataList = GetDatabaseData();
    foreach( var item in dataList )
    {
        listBox1.Items.Add(item.money);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多