当前位置: 首页 > news >正文

C#中,EXCEL与表列顺序完全一致情况的导入处理(BeginBinaryImport)

使用:BeginBinaryImport能快速的导入临时表

      //读取datagridview的值 private string GetCellValue(DataGridViewRow row, string columnName, string defaultValue = "0"){var value = row.Cells[columnName].Value;return (value == null || string.IsNullOrEmpty(value.ToString().Trim())) ?defaultValue : value.ToString().Trim();}

 

            string sql, clientName, goodsId, departmentid, departmentName, account_id, account_name, xynr, qty, amount, sfzx, year;string type = "";string m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12;string tmpTabelName = "xls" + DateTime.Now.ToFileTimeUtc().ToString();lbRate.Text = "正在导入,请稍等";try{sql = "create unlogged table " + tmpTabelName + "(";sql += @" clientname   varchar(120) not null  ,departmentname   varchar(50)  not null default  ''  )";DBHelperPg.ExecuteNonQuery(sql);DataGridViewRow drvRow;// 使用COPY命令(PostgreSQL高效批量插入)NpgsqlConnection conn = new NpgsqlConnection(DB.DBHelperPg.ConnectionString);conn.Open();using (var writer = conn.BeginBinaryImport($"COPY {tmpTabelName} FROM STDIN (FORMAT BINARY)")){for (int i = 0; i < dataGridView1.RowCount; i++){drvRow = dataGridView1.Rows[i];clientName = GetCellValue(drvRow, "客户名称");departmentName = GetCellValue(drvRow, "部门名称");writer.StartRow();writer.Write(clientName);writer.Write(departmentName);// ... 其他字段
                    }writer.Complete();}conn.Close();

 

http://www.jsqmd.com/news/3404/

相关文章:

  • Gitee PPM:数据驱动的DevSecOps项目管理新范式
  • acme.sh:强大的ACME协议Shell脚本,支持多DNS API
  • P9545 [湖北省选模拟 2023] 环山危路 / road 题解
  • c语言经典课程资料
  • k8s 兼容寒武纪 - 教程
  • 探秘圆周率 π:圆周率计算在线工具
  • 注意力机制下的位置编码的理解和梳理
  • 以史为鉴【长期置顶】
  • java21学习笔记-未命名的模式和变量 - 指南
  • 达梦数据库DM-查询指定模式下表的大小
  • 【笔记】Prfer 序列
  • win11 无线投屏(Miracast:)引发的思考附带解决方案 - Popeye
  • 2025年十大主流项目管理工具评测:功能覆盖与成本效益分析
  • 完整教程:服务器磁盘空间满了怎么办?阿里云ECS清理与云盘扩容教程
  • 分布式专题——19 Zookeeper分布式一致性协议ZAB源码剖析 - 指南
  • 关于MCO使用配置
  • 网络运维 --- ntp服务器
  • 向量那点事儿
  • c++输入输出详解
  • docker/docker compose/k8s
  • 中国开发者迎来新选择:Gitee成为研发协作平台转型期的中流砥柱
  • PySpark - Get the number of rows
  • RK3588-ubuntu server - 详解
  • 一文教你上手 Geometric Glovius 6.0:安装、授权与首个项目演示
  • 32单片机+free rtos移植CJSON库函数主要流程
  • Gitee如何重塑中国开发者生态:本土化创新与数字化转型的双重奏
  • 从MESA模型到锁升级:synchronized性能逆袭的底层逻辑
  • 输入输出接口
  • Go语言中的信号捕获与优雅退出:SIGINT、SIGTERM和SIGKILL详解 - 若
  • (二)3.1.9 生产“稳”担当:Apache DolphinScheduler Worker 服务源码全方位解析