将Excle数据导入到数据库

假如Excel中的数据如下:

  数据库建表如下:

  其中Id为自增字段:

 

代码:

复制代码
  1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Web;5 using System.Web.UI;6 using System.Web.UI.WebControls;7 using System.Data;8 using System.Data.OleDb;9 using System.Configuration;10 using System.Data.SqlClient;11 12 namespace InExcelOutExcel13 {14     public partial class ExcelToDB : System.Web.UI.Page15     {16         protected void Page_Load(object sender, EventArgs e)17         {18             FileSvr fileSvr = new FileSvr();19             System.Data.DataTable dt = fileSvr.GetExcelDatatable("C:\\Users\\NewSpring\\Desktop\\Demo\\InExcelOutExcel\\InExcelOutExcel\\excel\\ExcelToDB.xlsx", "mapTable");20             fileSvr.InsetData(dt);21         }22     }23     class FileSvr24     {25         /// <summary>26         /// Excel数据导入Datable27         /// </summary>28         /// <param name="fileUrl"></param>29         /// <param name="table"></param>30         /// <returns></returns>31         public System.Data.DataTable GetExcelDatatable(string fileUrl, string table)32         {33             //office2007之前 仅支持.xls34             //const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";35             //支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;36             const string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";37 38             System.Data.DataTable dt = null;39             //建立连接40             OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));41             try42             {43                 //打开连接44                 if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)45                 {46                     conn.Open();47                 }48 49 50                 System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);51 52                 //获取Excel的第一个Sheet名称53                 string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();54 55                 //查询sheet中的数据56                 string strSql = "select * from [" + sheetName + "]";57                 OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);58                 DataSet ds = new DataSet();59                 da.Fill(ds, table);60                 dt = ds.Tables[0];61 62                 return dt;63             }64             catch (Exception exc)65             {66                 throw exc;67             }68             finally69             {70                 conn.Close();71                 conn.Dispose();72             }73 74         }75 76         /// <summary>77         /// 从System.Data.DataTable导入数据到数据库78         /// </summary>79         /// <param name="dt"></param>80         /// <returns></returns>81         public int InsetData(System.Data.DataTable dt)82         {83             int i = 0;84             string lng = "";85             string lat = "";86             string offsetLNG = "";87             string offsetLAT = "";88 89             foreach (DataRow dr in dt.Rows)90             {91                 lng = dr["LNG"].ToString().Trim();92                 lat = dr["LAT"].ToString().Trim();93                 offsetLNG = dr["OFFSET_LNG"].ToString().Trim();94                 offsetLAT = dr["OFFSET_LAT"].ToString().Trim();95 96                 //sw = string.IsNullOrEmpty(sw) ? "null" : sw;97                 //kr = string.IsNullOrEmpty(kr) ? "null" : kr;98 99                 string strSql = string.Format("Insert into DBToExcel (LNG,LAT,OFFSET_LNG,OFFSET_LAT) Values ('{0}','{1}',{2},{3})", lng, lat, offsetLNG, offsetLAT);
100 
101                 string strConnection = ConfigurationManager.ConnectionStrings["ConnectionStr"].ToString();
102                 SqlConnection sqlConnection = new SqlConnection(strConnection);
103                 try
104                 {
105                     // SqlConnection sqlConnection = new SqlConnection(strConnection);
106                     sqlConnection.Open();
107                     SqlCommand sqlCmd = new SqlCommand();
108                     sqlCmd.CommandText = strSql;
109                     sqlCmd.Connection = sqlConnection;
110                     SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();
111                     i++;
112                     sqlDataReader.Close();
113                 }
114                 catch (Exception ex)
115                 {
116                     throw ex;
117                 }
118                 finally
119                 {
120                     sqlConnection.Close();
121 
122                 }
123                 //if (opdb.ExcSQL(strSql))
124                 //    i++;
125             }
126             return i;
127         }
128     }
129 }



运行结果:

转载于:https://www.cnblogs.com/62333494huhu/p/4576242.html

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

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

相关文章

click vue 重复调用_VUE防止多次点击,重复请求

VUE防止多次点击&#xff0c;重复请求1.添加自定义文件 preventReClick.jsimport Vue from vueconst preventReClick Vue.directive(preventReClick, {inserted: function (el, binding) {el.addEventListener(click, () > {if (!el.disabled) {el.disabled truesetTimeou…

virbr0怎么关闭_CentOS 7中关闭删除virbr0虚拟网卡

在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后&#xff0c;启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡&#xff0c;这个是因为在虚拟化中有使用到libvirtd服务生成的&#xff0c;如果不需要可以关闭后去掉&#xff1a;[rootlocalhost ~]# virsh…

动态规划(五) 最大连续子序列和(Maximum Continuous Subsequence Sum)

占位...转载于:https://www.cnblogs.com/AloneAli/p/4580931.html

python中beautifulsoup是什么库_BeautifulSoup库详解(个人整理)

BeautifulSoup4是爬虫必学的技能。BeautifulSoup最主要的功能是从网页抓取数据&#xff0c;Beautiful Soup自动将输入文档转换为Unicode编码&#xff0c;输出文档转换为utf-8编码。BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器&#xff0c;如果我们不…

iOS 设置系统音量和监听系统音量变化

很简单的调用 首先在工程引入MediaPlayer.framework #import <MediaPlayer/MediaPlayer.h> 1. 获取系统音量 // 获取系统音量 MPVolumeView *volumeView [[MPVolumeView alloc] init];UISlider *volumeViewSlider nil;for (UIView *view in [volumeView subviews]){if …

h5关于选择器以及class的小加强

1、querySelector和querySelectorAll 这两个方法类似于jquery的选择器 document.querySelector(.box) document.querySelectorAll(.box)前者只能选择一组中的第一个&#xff0c;后者选择一组元素。 2、getElementsByClassName document.getElementsByClassName(box) 选择的结…

1 睡眠唤醒_一劳永逸解决WIN10所有睡眠问题

1.初级阶段&#xff0c;解决因硬件的唤醒事件powercfg -lastwake查看上次唤醒电脑的设备哪些硬件能唤醒电脑&#xff1f;powercfg /devicequery wake_armed列出现在可以唤醒电脑的所有硬件设备&#xff0c;可以看到现在键盘能唤醒powercfg /devicequery wake_programmable列出全…

[转]Device Context 设备环境 设备上下文 理解

http://blog.csdn.net/p424671075/article/details/7235601转载于:https://www.cnblogs.com/qrlozte/p/4582594.html

生成路径 vs 设置_Simulink代码生成之模型配置

欢迎关注我的微信公众号【新能源动力电池与BMS】&#xff0c;头条号&#xff1a;【阿Q在江湖】&#xff1b;所有文章资料会在公众号首发。本文已同步录制视频讲解&#xff1a;Simulink代码生成之模型配置_视频教程 - 知乎。PS&#xff1a;前段时间&#xff0c;传出美国禁用一些…

常见电容器图片_各种电容器图片大集合

图1是胆&#xff1b;图2是灯具&#xff1b;图3是mkph电容&#xff1b;图4是met电容&#xff1b;图5、图10是pei电容&#xff1b;图6是胆贴片电容&#xff1b;图7是mpe电容&#xff1b;图8是贴片电容&#xff1b;图11是轴向电解电容器&#xff1b;图12是mpp电容。图1是ppn电容&a…

解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾

解析php混淆加密解密的手段&#xff0c;如 phpjm,phpdp神盾,php威盾 原文 解析php混淆加密解密的手段&#xff0c;如 phpjm,phpdp神盾,php威盾 php做为一门当下非常流行的web语言&#xff0c;常常看到有人求解密php文件&#xff0c;想当年的asp也是一样。一些人不理解为什么要混…

bootstrap 合并菜单_Bootstrap与tab组合,切换菜单实例

Test$(function () {$(#myTab a:last).tab(show);//初始化显示哪个tab$(#myTab a).click(function (e) {e.preventDefault();//阻止a链接的跳转行为$(this).tab(show);//显示当前选中的链接及关联的content})})HomeProfileMessagesSettings服务器.home....profile...messages..…

WCF 宿主与通信模式(二)

宿主 每个WCF服务都必须托管在Windows进程中&#xff0c;该进程称为宿主进程(host process) 单个宿主进程可以托管多个服务&#xff0c;相同的服务类型也可以托管在多个宿主进程中。 wcf中托管服务一般有一下四种&#xff1a; 寄宿方式 描述 Console寄宿 利于开发调试&#…

mysql端口被占用_MySQL重启端口被占用处理

1,查看日志的ERROR2018-05-23T01:26:59.230382Z 0 [Warning] NO_AUTO_CREATE_USER sql mode was not set.2018-05-23T01:26:59.230409Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled2018-05-23T01:26:59.230…

poj 3660 传递闭包 **

题意&#xff1a;题目给出了m对的相对关系&#xff0c;求有多少个排名是确定的。 链接&#xff1a;点我 如果这个点到其他点的关系是确定的&#xff0c;那么这个点就是确定的&#xff0c;注意如果这个点到不了其他点&#xff0c;但其他点能到这个点&#xff0c;那么这个点和其他…

C# 网络编程之webBrowser获取网页url和下载网页中图片

该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试下载网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识、正则表达式实现浏览、获取url、下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的. 一.界面设计…

mysql员工脚本_mySQL常用脚本汇总

mysql的常用脚本有哪些呢&#xff1f;我们来做个总结建表语句sql语句最后指定主键DROP TABLE IF EXISTS user_info1;CREATE TABLE user_info1 (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT 姓名,password varcha…

多线程 调用多线程的方法 Runtime与ProcessBuilder

一般我们使用Java运行其他类中的方法的时候&#xff0c;无论是静态调用还是动态调用&#xff0c;都是在当前的进程中执行的。也就是只有一个Java虚拟机实例在运行。有时候需要通过Java代码启动多个Java子进程&#xff0c;这样做会消耗些资源&#xff0c;但是程序变得更稳定。因…

mysql可连接_mysql开启远程可连接

1.打开cmd窗口&#xff0c;进入MySql安装的bin目录2.执行命令登录数据库,之后会出现一行要你输入密码的mysql -u root -p3.执行以下命令分配新用户&#xff1a;grant all privileges on *.* to ‘用户名‘‘IP地址‘ identified by ‘密码‘;4.执行完上述命令后用下面的命令刷新…

ubuntu14.04 python2.7 安装配置OpenCV3.0

环境&#xff1a;ubuntu14.04 python2.7 内容&#xff1a;安装并配置OpenCV3.0 今天按照OpenCV官网上的步骤装了OpenCV但是&#xff0c;装好之后python提示“No module named cv2” 首先&#xff0c;安装OpenCV的步骤&#xff1a; OpenCV官网的安装步骤&#xff1a;http://doc…