首页 > 数据库 >C#根据json内容动态生成SQL语句,字段数量可以不一样

C#根据json内容动态生成SQL语句,字段数量可以不一样

时间:2023-11-13 14:35:47浏览次数:25  
标签:count Set string C# strValue json strKey SQL sb

public static int Update(string strJson) 
{
    int count = 0;
    List<Dictionary<string, object>> listRows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(strJson);
    foreach (var row in listRows)
    {
        var dic = row.ToDictionary(item => item, item => true);
        string strUpdateKey = "";
        string strUpdateKeyValue = "";

        StringBuilder sb_Set = new StringBuilder("");
        foreach (var col in dic)
        {
            string strKey = col.Key.Key;
            string strValue = col.Key.Value.ToString();

            // 用于where字段和值的保存
            if (strKey == "KeyID") {
                strUpdateKey = strKey;
                strUpdateKeyValue = strValue;
            }
            if (strKey == "terminalWorkOrderProductionWeftinfoVoList")
            {
                continue;
            }

            if (sb_Set.ToString() == "")
            {
                sb_Set.Append(string.Format(strKey + "='{0}'", strValue));
            }
            else {
                sb_Set.Append(string.Format(","+strKey + "='{0}'", strValue));
            }
        }

        string strWhere = string.Format(" where {0} = '{1}';", strUpdateKey, strUpdateKeyValue);
        StringBuilder sb_Sql = new StringBuilder("update ProductPlan set ");
        sb_Sql.Append(sb_Set.ToString());
        sb_Sql.Append(strWhere);
        count = count + SQLiteHelper.ExecuteNonQuery(sb_Sql.ToString());
    }
    return count;
}

 

标签:count,Set,string,C#,strValue,json,strKey,SQL,sb
From: https://www.cnblogs.com/chengeng/p/17829009.html

相关文章

  • 防干扰/抗噪LCD液晶段码显示驱动芯片VK2C21A/AA SSOP28 适用于适用于单相电表,工业电表
     I²C 接口LCD 控制及驱动IC型号:VK2C21A:RAM 映射 20*4,16*8封装(SOP-28)LCD液晶显示驱动VK2C21B:RAM 映射 16*4,12*8封装(SOP-24)LCD液晶显示驱动VK2C21C:RAM 映射 12*4,8*8封装(SOP-20) LCD液晶显示驱动VK2C21D:RAM 映射 8*4,4*8封装(NSOP-16) LCD液晶显......
  • chapter 12: 块设备 I/O 和缓冲区管理
    学习笔记摘要本章深入研究了区块设备I/O和缓冲管理,重点介绍了原则、I/O缓冲的优势以及Unix缓冲管理算法的不足之处。提出使用信号量设计更高效的缓冲管理算法,介绍了PV算法作为示例。还提供了一个编程项目,用于比较Unix的缓冲管理算法和PV算法,有助于理解文件系统的I/O......
  • cas5.3 通过接口登录,登录后可跳到任意子系统,
    Map<String,Object>map=(Map)newMyBeanMap(systemUser);PrincipalFactoryprincipalFactory=newDefaultPrincipalFactory();Principalprincipal=principalFactory.createPrincipal(systemUser.getLoginid(),map);Authenticatio......
  • TDengine 上榜 BenchCouncil 全球首个开源贡献榜
    近日,BenchCouncil(国际测试委员会)公布了“世界首个开源贡献榜”,该榜单号称“只以贡献分高下”。值得一提的是,涛思数据、TDengine 上榜BenchCouncil发布的开源计算机系统机构榜、成果榜,TDengine创始人&核心开发陶建辉(JeffTao)也入选了开源系统贡献榜。据了解,该榜单是由Benc......
  • c#中this的几种用法
    一、区分当前类的对象这个是常用的功能,如下图,熟悉的可以直接跳过,假设当前类有一个全局变量和当前方法中的参数名一模一样的时候,VisualStudio就会提示异常,因为系统不知道你到底要给谁赋值,按C#的编程规范来说,全局变量最好第一个字母用大写,当然你也可以用小写,在遇到下面的这种情......
  • 小程序性能提速秘籍:CSS代码优化,让小程序轻松翻倍酷炫!
    引言:Hello,小程序开发小能手们!是不是有时候发现小程序的加载速度有点慢,页面样式显示有点乱?别急,今天小编要传授一招“CSS代码优化”的技能,让你的小程序风驰电掣,页面秒变酷炫!我们要一起玩得开心,不让性能问题影响我们的小程序!......
  • Centos7 nginx反向代理gitea和grafana&钉钉告警
    1安装nginxyuminstall-ygccmakepcre-develzlib-developenssl-develwgethttps://nginx.org/download/nginx-1.20.1.tar.gztar-zxvfnginx-1.20.1.tar.gzcdnginx-1.20.1./configure--prefix=/usr/local/nginx--with-http_ssl_modulemakemakeinstallvi/etc/system......
  • 使用tracemalloc对python内存进行分析
    1.通过两次快照对importtracemalloc#这个是python自带的defon_start():'''需要测试的代码'''passtracemalloc.start()snapshot1=tracemalloc.take_snapshot()on_start()#需要测试的代码snapshot2=tracemalloc.take_snapshot(......
  • MySQL timestamp查询
    MySQL是一个常用的关系型数据库管理系统,广泛应用于各个行业的数据存储和处理中。在MySQL中,timestamp是一种常用的数据类型,用于表示日期和时间。本文将介绍如何使用MySQL中的timestamp进行查询操作,并给出相应的代码示例。1.timestamp的概述timestamp是MySQL中的一种日期和时间类......
  • 汇编-INC(递增)和DEC(递减)
    INC(递增)和DEC(递减)指令分别表示将寄存器或内存操作数加1和减1。语法如下:INCreg/memDECreg/mem溢出标志、符号标志、零标志、辅助进位标志,以及奇偶标志会根据目的操作数的值而发生变化。INC和DEC指令不影响进位标志.386.modelflat,stdcalloptioncasemap:none......