当前位置: 首页 > 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.hskmm.com/?act=detail&tid=16725

相关文章:

  • Gitee PPM:数据驱动的DevSecOps项目管理新范式
  • acme.sh:强大的ACME协议Shell脚本,支持多DNS API
  • P9545 [湖北省选模拟 2023] 环山危路 / road 题解
  • 探秘圆周率 π:圆周率计算在线工具
  • 以史为鉴【长期置顶】
  • java21学习笔记-未命名的模式和变量 - 指南
  • 达梦数据库DM-查询指定模式下表的大小
  • 【笔记】Prfer 序列
  • win11 无线投屏(Miracast:)引发的思考附带解决方案 - Popeye
  • 2025年十大主流项目管理工具评测:功能覆盖与成本效益分析
  • 关于MCO使用配置
  • 向量那点事儿
  • c++输入输出详解
  • docker/docker compose/k8s
  • 中国开发者迎来新选择:Gitee成为研发协作平台转型期的中流砥柱
  • RK3588-ubuntu server - 详解
  • 一文教你上手 Geometric Glovius 6.0:安装、授权与首个项目演示
  • 32单片机+free rtos移植CJSON库函数主要流程
  • Gitee如何重塑中国开发者生态:本土化创新与数字化转型的双重奏
  • 输入输出接口
  • Go语言中的信号捕获与优雅退出:SIGINT、SIGTERM和SIGKILL详解 - 若
  • (二)3.1.9 生产“稳”担当:Apache DolphinScheduler Worker 服务源码全方位解析
  • 完整教程:生产环境实战:Spring Cloud Sleuth与Zipkin分布式链路追踪实践
  • 训练“系统级思维”,听时序数据库 IoTDB Committer 说说从设计到应用的成长
  • 关于gradle项目启动
  • Day08
  • 常见闪存区别
  • 进程、线程、协程、虚拟线程,傻傻分不清楚
  • 事倍功半是蠢蛋55 ctrl+shift+f 每次搜索都按倒繁体
  • Ini文件的读写