关于Excel导入到sql操作的相关问题总结:

一、大批量数据导入

方法1、从Excel大批量数据导入时我们可以使用sql里面有一个batch copy的功能

方法2、在sql中建一个table type结构,在前端将excel读到datatable中,把整个datatable作为存储过程参数传到后台数据库。

举例:

c#:

public void Import(DataTable dt)
{
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter("@DataTable",SqlDbType.Structured)
}; parms[0].Value = dt; SQLHelper.ExecuteNonQueryStoredProcedure(ConnString, "ImportExcel", parms);
}

SQL:

--创建table type

CREATE TYPE [dbo].[DataTable_TYPE] AS TABLE(
[NO] [varchar](20) NULL,
[Dept] [varchar](20) NULL,
[EmployeeNO] [decimal](18,2) NULL,
[EmployeeName] [nvarchar](50) NULL,
[JoinDate] [datetime] NULL,
[TotalScore] [decimal](18, 2) NULL,
[JobQty] [int] NULL,
[JobI] [decimal](18, 2) NULL,
[JobJ] [decimal](18, 2) NULL,
[JobK] [decimal](18, 2) NULL,
[JobL] [decimal](18, 2) NULL,
[JobM] [decimal](18, 2) NULL,
[JobN] [decimal](18, 2) NULL,
[JobO] [decimal](18, 2) NULL
) --导入数据存储过程
create proc ImportExcel
@DataTable DataTable_TYPE readonly
as
begin
  insert into XXtable
  select ......
  from @DataTable
end

注意:在导入excel数据时,很多时候将excel读到datatable的时候,excel里的数值列会变成科学计数法,这时请将对应的表或table type的列的类型设为decimal即可。

也有说在数据库select的时候直接用cast(cast(abc as float) as decimal(xxx,xx)), 但这好像会有一个问题就是四舍五入的问题,比如 科学计数法为 1.00564e+007 转换后会变成

最新文章

  1. CMD批处理延时启动的几个方法
  2. Powershell获取并导出指定日期EventLog
  3. C,C++回文字符串判断(字符串指针的用法)
  4. 济南学习 Day 4 T2 am
  5. LM393,LM741可以用作电压跟随器吗?
  6. 安装MySQL和HandlerSocket
  7. Canvas模糊化处理图片、毛玻璃处理图片之stackblur.js
  8. PHP Warning: phpinfo(): It is not safe to rely on the system's timezone setting
  9. Codeforces 383C . Propagating tree【树阵,dfs】
  10. Storm中-Worker Executor Task的关系
  11. java正则表达式提取地址中的ip和端口号
  12. Vue源码后记-其余内置指令(3)
  13. JavaScript基础1——基本概念
  14. Python 接口测试(十)
  15. Poj3321 Apple tree
  16. sql记录去重(SQL查询或者删除表中重复记录)
  17. 同步锁Synchronized与Lock的区别?
  18. C# 委托类型及使用
  19. python字符串处理以及字符串格式化
  20. Django+Xadmin打造在线教育系统(四)

热门文章

  1. VMware安装CentOS以及CentOS的一些配置
  2. MyBatis #{} 取值注意事项
  3. Ideal部署web工程
  4. 关于kafka的新的group无法订阅到topic中历史消息的问题
  5. ORM 创建manytomay的三种方法 反向查询 和一些 双下方法版学员管理系统3
  6. 使用 pkg 打包分发 nodejs 应用
  7. mysql的索引设计原则以及常见索引的区别
  8. scikit-learn数据集下载太慢的问题
  9. webpack基本配置文件
  10. Eclipse之父、《设计模式》作者、Junit作者之Erich Gamma