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