zoukankan      html  css  js  c++  java
  • Sqlite 快速插入数据到本地表中

    用原始Insert方法太慢,网上找到了
    https://www.cnblogs.com/yisen-code/p/6897524.html

    思路是:

    开启事务,开启预处理,然后把SQL用参数传入具体值来快速写入数据,本地测试,2W条写入本地不到1秒。

    分享给大家

            public void Quick_HG_Insert(DataTable dt)
            {
    
                try
                {
                    var conn = GetConnection();
                    using (var dbTrans = conn.BeginTransaction())
                    {
                        var cmd = new SQLiteCommand();
                        cmd.Connection = conn;
                        cmd.Prepare();//开启预处理
    
                        cmd.CommandText = "Insert Into BoxScanRank(BoxScanNO,BoxCount,PONO,Rank) Values(@BoxScanNO,@BoxCount,@PONO,@Rank)";
                        var sp = new SQLiteParameter[4];
                        foreach (DataRow row in dt.Rows)
                        {
                            sp[0] = new SQLiteParameter("@BoxScanNO", row["BoxScanNO"]);
                            sp[1] = new SQLiteParameter("@BoxCount", row["BoxCount"]);
                            sp[2] = new SQLiteParameter("@PONO", row["PONO"]);
                            sp[3] = new SQLiteParameter("@Rank", row["Rank"]);
                            cmd.Parameters.AddRange(sp);
                            cmd.ExecuteNonQuery();
                        }
                        dbTrans.Commit();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
  • 相关阅读:
    tcpdump命令
    浅谈  curl命令
    MongoDB下rs.status()命令
    Device mapper存储方式
    top命令
    cat命令汇总整理
    centos7搭建nginx日志
    CentOS7 防火墙(firewall)的操作命令(转)
    服务器的硬件组成
    shell随机生成10个文件
  • 原文地址:https://www.cnblogs.com/chinabc/p/9169322.html
Copyright © 2011-2022 走看看