Excel导入MS SQL SERVER 操作

关于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)), 但这好像会有一个问题就是四舍五入的问题,比如 10056390 科学计数法为 1.00564e+007 转换后会变成 10056400

 

转载于:https://www.cnblogs.com/Alenliu/p/4226115.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果mac闪退_自从Mac有了WPS,从此和双系统说再见!

薛岗13,712本文共计2266个字,预计阅读时长需要6分钟。大部分使用Macbook的用户都有一个痛点,就是编辑好的office文件,在朋友或同事的windows电脑上展示效果与自己的会有差异。除此外,卡顿、闪退、数据丢失等也是Windows版office在…

初学者计算机_初学者极客:如何在计算机上重新安装Windows

初学者计算机Reinstalling Windows is one of the easiest ways to fix software problems on your computer, whether it’s running slow or infected by viruses. You should also reinstall Windows before you get rid of an old PC. 重新安装Windows是修复计算机上软件问…

win7 32位 安装opencv-python后,运行时提示 from .cv2 import *: DLL load failed: 找不到指定的模块 的解决办法...

安装opencv后,运行一个测试程序提示"from .cv2 import *: DLL load failed: 找不到指定的模块"。于是百度一下解决办法,结果试了N多方法后也没能解决这个问题。 最后不得不耐心的下载了dependency walker来查看opencv到底是缺少了哪个dll文件。…

goahead处理json_GoAhead Web Server远程代码执行漏洞分析(附PoC)

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。本文是关于GoAhead web server远程代码执行漏洞(CVE-2017-17562)的分析,该漏洞源于在初始化CGI脚本环境时使…

项目中的模块剥离成项目_使用MCEBuddy 2从电视录制中剥离广告

项目中的模块剥离成项目One of the great things about time-shifting your television viewing is that you are able to watch the shows you love at a time that suits you. Just because you have an appointment on Wednesday evening there’s no need to miss out on y…

有上下界限制可行流

无源汇有上下界限制可行流(循环流) 即每条边的流量限制为[L,R],判断有没有满足整个网络的可行流。 看看以前学的网络流,实际上它的流量限制为[0,C],现在无非多了一个下限的限制。 网络流的一个重要性质:除了…

.gitignore文件将已经纳入版本管理的文件删除

git rm -r --cached . git add . git commit -m update .gitignore git push -u origin master 先将本地缓存删除,再提交,.gitignore文件只针对那些没有被staged的文件有效 参考博客:https://www.cnblogs.com/kevingrace/p/5690241.html 转载…

gmail收件箱标签设置_通过在Gmail中启用实验室功能来启动收件箱

gmail收件箱标签设置We recently looked at how you can make it easier to manage multiple inboxes in Gmail using the Multiple Inboxes Lab feature. This is a non-standard feature and it’s far from being the only one available to you. In fact there are numerou…

linux rmp命令安装包在哪里_rpm命令_Linux rpm 命令用法详解:RPM软件包的管理工具...

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级&#xf…

【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)

洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w mod k0 时)w/k1(当 w mod k1 时)First: 位数为2~m的种数 即从2k-1中…

cmd命令不识别exp_Cmder-超量级的Cmd

Windows命令行工具cmd缺点窗口size不能便捷缩放复制文本,不能直接用鼠标拷贝,还需要多一道菜单操作;而且,还只能块状拷贝,而不是按行字符,极其不便不支持多Tab页,多窗口管理不便cmd界面丑陋&…

sizeof string

char a[] "hello"; string s "hello"; cout<<sizeof(a)<<endl; cout<<sizeof(s)<<endl; cout<<sizeof(s.c_str())<<endl;输出为 6 32 4最后一个c_str返回的是char*,所有指针的长度都为4。sizeof(s)为什么为32&#…

iTOP-4412开发板实现3路ADC数模转换驱动例程

学习下 linux 数模程序驱动的编写&#xff0c;本节我们实现的功能是实现三路ADC 数模转换。驱动程序驱动程序的名字&#xff1a;“itop4412_adc.c”。要想把这个驱动注册到内核,先把这个驱动程序放到内核的“driver/char”目录下面&#xff0c;如下图所示&#xff1a; Makefile…

β射线与哪些物质可产生较高的韧致辐射_辐射无所不在,香蕉土豆里都有?我们还能愉快生活吗?...

作为一枚受过系统科学教育&#xff0c;耳聪目明的当代年轻人&#xff0c;你是不是隔三差五被长辈亲友群里各种“XX有放射性&#xff0c;赶紧远离&#xff01;”的科学谣言搞得哭笑不得&#xff1f;又或者&#xff0c;稍一不注意&#xff0c;长辈亲友就买回了各种号称黑科技满满…

requests保存图片

1.创建07_save_jpg.py文件 import requests#发送请求respone requests.get("https://www.baidu.com/img/bd_logo1.png?wheresuper")#保存with open("a.png","wb")as f: f.write(respone.content)2.运行代码 转载于:https://www.cnblogs.com…

在Linux上运行Windows软件的4种以上方法

Linux has come a long way, but you may still need to run Windows applications occasionally – especially Windows-only PC games. Luckily, there are quite a few ways to run Windows applications on Linux. Linux已经走了很长一段路&#xff0c;但是您可能仍然偶尔需…

Spring-IOC XML 配置多个相同 ID 的 bean 加载分析

我们现在仍以 xml 中配置 bean 的方式来 使用 Spring &#xff0c;不考虑注解和扫包 配置相同id 的bean 定义一个 bean 类 TransactionManager /*** author maple 2018.09.10 下午10:27*/ public class TransactionManager {private static int counter 0;private String bean…

confd_confd + Nacos | 无代码侵入的配置变更管理

为什么要支持confd&#xff0c;老的应用配置管理模式是启动时读取配置文件&#xff0c;然后重新读取配置文件需要应用重启。一般的配置管理系统都是代码侵入性的&#xff0c;应用接入配置管理系统都需要使用对应的SDK来查询和监听数据的变更。对于一些已经成熟的系统来说&#…

如何在Windows 8中更改登录屏幕的颜色

Nearly every component of Windows 8 can be customized to suit your needs, some settings however are buried deep into the registry. Windows 8的几乎每个组件都可以自定义以满足您的需求&#xff0c;但是某些设置却深埋在注册表中。 如何在Windows 8中更改登录屏幕的颜…

我看的书籍

UNIX Network Programming, Volume 1, Second Edition, by W.Richard Stevens. Cocoa Programming for Mac OS X, Third Edition, by Aron Hillegass. Beginning AppleScript, by Stephen G. Kochan. 转载于:https://www.cnblogs.com/IvanYang/archive/2010/11/11/1874610.html…