将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,一经查实,立即删除!

相关文章

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

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

生成路径 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…

poj 3660 传递闭包 **

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

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

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

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

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

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…

[iOS] Win8下在Vmware11中安装使用苹果系统OS X 10.10

近来因为人事变动&#xff0c;领导打算安排我做 iOS 的项目&#xff0c;所以需要花一些时间提前准备一下iOS相关的东西。因为自己手头上并没有 Mac&#xff08;过年为了闲的时候能玩玩游戏买了联想&#xff0c;唉&#xff09;&#xff0c;想想不能只靠每天在公司的时间练 demo …

html5的网络书店图书网站代码_【技能提升】10个编写HTML5的实用小技巧

1. 新的文档类型(Doctype)html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>上面这个既麻烦又难记的XHTML文档类型你还在使用吗&#xff1f;如果还是这样的话&#xff0c;现在该切换到新的HTML5文档类型…

sql中if语句的用法_Python中的if条件语句

Python中的if语句在实际的编程中&#xff0c;经常需要检查一系列条件&#xff0c;并据此决定采取什么措施。正常情况下&#xff0c;程序的执行是自上而下的进行&#xff0c;if语句则根据条件判断&#xff0c;实现程序的执行顺序改变。一、if-else语句1、语法&#xff1a;if 条件…

mysql中non用什么_mysql Non-Transactional Database Only(只支持MyISAM)

后来在做WordPress&#xff0c;一开始还不知道原来WordPress用的是InnoDB数据引擎&#xff0c;于是在原来的数据库里面就建了一个数据库,一开始也没发觉问题&#xff0c;安装&#xff0c;导入sql&#xff0c;都没问题&#xff0c;当时也没多想。直到这几天因为又要装多一个Word…

timed_waiting线程是否占用cpu_程序CPU占用率飙升,如何定位线程的堆栈信息?超详细,值得收藏看不懂还有配套视频 第319篇...

相关历史文章(阅读本文前&#xff0c;您可能需要先看下之前的系列?)国内最全的Spring Boot系列之三2020上半年发文汇总「值得收藏」GraphQL的探索之路 – SpringBoot集成GraphQL小栗子篇二 - 第315篇GraphQL的探索之路 – SpringBoot集成GraphQL之Query篇三 - 第316篇GraphQL的…

sql多层嵌套别名无效_SQL之复杂查询

前文学了汇总分析&#xff0c;学了常见的汇总函数&#xff0c;会分组并且掌握了对分组结果指定条件。今天开始学习SQL的视图和子查询&#xff0c;还有数据库关联与嵌套查询内容的学习。一、视图1.1视图是有单固定存储可反复读取使用的子查询&#xff0c;所以视图适用于频繁使用…

POJ 1195 Mobile phones【 二维树状数组 】

题意&#xff1a;基础的二维数组&#xff0c;注意 0 lowbit(0)会陷入无限循环----- 之前做一道一维的一直tle,就是因为这个-------------------------- 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include <cmath> 5 #includ…

基于Angularjs实现分页

前言 学习任何一门语言前肯定是有业务需求来驱动你去学习它&#xff0c;当然ng也不例外&#xff0c;在学习ng前我第一个想做的demo就是基于ng实现分页&#xff0c;除去基本的计算思路外就是使用指令封装成一个插件&#xff0c;在需要分页的列表页面内直接引用。 插件 在封装分页…

mbot机器人初体验_[首发开箱]Makeblock mBot Ranger mBot游侠版 强大的STEM教育机器人...

本帖最后由 ahagowo 于 2016-4-17 08:38 编辑mBot游侠机器人套件是一个三种功能于一身的STEM教育机器人套件&#xff0c;它支持3种组装形态&#xff1a;机器人坦克&#xff0c;三轮赛车&#xff0c;和自平衡车。mBot游侠可通过 iPad&#xff0c;平板计算机或笔记本计算机来编程…

python课程笔记_Python课程笔记(一)

由于新冠状病毒的爆发&#xff0c;不得不在家里上网课&#xff0c;开课已经两个礼拜了&#xff0c;今天上完Python课后&#xff0c;准备整理一下最近学习Python的笔记。人生苦短&#xff0c;我用Python一、Hello World初学一门新的语言&#xff0c;就一定要从Hello World开始pr…

redis的lrange_thinkphp5操作redis系列教程】列表类型之lRange,lGetRange

namespace app\admin\controller;use think\cache\driver\Redis;use think\Controller;use \think\Db;class Index extends Controller{//获取redispublic function getRedis(){$redis new \Redis();$redis->connect(127.0.0.1,6379);$redis->auth(root); //redis密码ec…

云服务器建站原理_云服务器cvm与建站主机之间的区别

(文章来源&#xff1a;西部数码)云服务器cvm与建站主机区别是什么&#xff1f;cvm的英文全拼是CloudVirtualMachine(云虚拟机)&#xff0c;所以云服务器cvm是指虚拟云服务器&#xff0c;属于云服务器产品中的一种。而建站主机一般多是指虚拟主机&#xff0c;是在服务器中划分出…

maven找到mysql 连接池_在Tomcat6.0+MySQL5.0环境下配置和使用数据库连接池

一&#xff0c;在Tomcat中配置连接池的JNDI首先到MySQL的网站上下载MySQL JDBC连接器放到%CATALINA_HOME%/lib目录下&#xff0c;在%CATALINA_HOME%/conf目录下找到context.xml&#xff0c;这个文件是全局的&#xff0c;如果想只对特定的应用使用可以编辑WEB-INF/context.xml文…