为了账号安全,请及时绑定邮箱和手机立即绑定

c# - 如何将 json 数据存储到 MySQL 中

c# - 如何将 json 数据存储到 MySQL 中

C#
大话西游666 2021-11-14 17:18:08
我的 REST API 上有这个 JSON 数据,我想将它存储在我的 MySQL 服务器中JSON 数据[    {        "res_order_num": "1",        "menu_code": "1",        "menu_quantity": "2",        "menu_total_price": "60",        "res_no": "1",        "menu_name": "Adobo Manok"    },    {        "res_order_num": "2",        "menu_code": "5",        "menu_quantity": "2",        "menu_total_price": "90",        "res_no": "1",        "menu_name": "Pritong Bangus"    }]那么我如何将它存储在我的 MySQL 中。
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

这里的解决方案:


var persons = JsonConvert.DeserializeObject<List<Member>>(response);

现在您可以循环浏览如下项目。


foreach(Member person in persons )

{

    // add to db your each person

}

这里怎么可以插入到数据库:为ADO.Net:https://msdn.microsoft.com/en-us/library/ms233812.aspx


对于实体框架:https ://msdn.microsoft.com/en-us/library/ee712907( v= vs.113).aspx


查看完整回答
反对 回复 2021-11-14
?
千巷猫影

TA贡献1829条经验 获得超7个赞

如果您的 json 包含 0.....N 人,那么BatchUpdate这对您来说是一个很好的解决方案,如果您有性能要求,这可能会减少您的数据库往返


以下方法包含样本 BatchUpdate


public void BatchUpdateToMySqlServer()

{

    var persons = JsonConvert.DeserializeObject<List<Member>>(response);


    DataTable dt = new DataTable();

    dt.Columns.Add(new DataColumn("res_order_num", typeof(System.String)));

    dt.Columns.Add(new DataColumn("menu_code", typeof(System.String)));

    dt.Columns.Add(new DataColumn("menu_quantity", typeof(System.String)));

    dt.Columns.Add(new DataColumn("menu_total_price", typeof(System.String)));

    dt.Columns.Add(new DataColumn("res_no", typeof(System.String)));

    dt.Columns.Add(new DataColumn("menu_name", typeof(System.String)));


    foreach (var item in persons)

    {

        DataRow dr = dt.NewRow();

        dr["res_order_num"] = item.res_order_num;

        dr["menu_code"] = item.menu_code;

        dr["menu_quantity"] = item.menu_quantity;

        dr["menu_total_price"] = item.menu_total_price;

        dr["res_no"] = item.res_no;

        dr["menu_name"] = item.menu_name;

        dt.Rows.Add(dr);

    }



    MySqlConnection con = new MySqlConnection("Your Connection String");

    if (con.State == ConnectionState.Open)

    {

        con.Close();

    }

    con.Open();

    MySqlCommand cmd = new MySqlCommand("Your Insert Command", con);

    cmd.CommandType = CommandType.Text;


    cmd.UpdatedRowSource = UpdateRowSource.None;


    MySqlDataAdapter da = new MySqlDataAdapter();

    da.InsertCommand = cmd;

    da.UpdateBatchSize = 100000; //If you json contains 100000 persons object;

    int records = da.Update(dt);

    con.Close();

}

如果您必须使用StoedProcedure作为插入命令,这里是好文章。


查看完整回答
反对 回复 2021-11-14
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

没有附加信息;您似乎没有太多现有代码。如果您正在尝试开始使用 c# 将数据保存到 MySQL 数据库;Microsoft 提供了本教程。但是,没有其他信息,没有多少人可以回答这个问题。

教程:https : //msdn.microsoft.com/en-us/library/0f92s97z.aspx

如果您包含以下内容,人们可能会给出更好的答案:

  • 您是否有读取或写入 MySQL 的现有代码?

  • 您是否设置了 MySQL 数据库?

  • 您的数据库是否具有与 JSON 中表示的数据匹配的表?


查看完整回答
反对 回复 2021-11-14
  • 3 回答
  • 0 关注
  • 867 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信