C#将Excel数据导入数据库(MySQL或Sql Server)
最近一直很忙,很久没写博客了。今天给大家讲解一下如何用C#将Excel数据导入Excel,同时在文章最后附上如何用sqlserver和mysql工具导入数据。
导入过程大致分为两步:
- 1.将excel数据导入到DataSet中;
- 2.将DataSet里面的数据遍历插入到对应的数据库
一、将excel数据导入到DataSet中
需添加引用using System.Data; using System.Data.OleDb;
public static DataSet ReadExcel(string filepath)
{
try
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
OleDbConnection oleConn = new OleDbConnection(strConn);
oleConn.Open();
string sql = "select * from [Sheet1$]";
OleDbDataAdapter oleDaExcel = new OleDbDataAdapter(sql, oleConn);
DataSet oleDsExcel = new DataSet();
oleDaExcel.Fill(oleDsExcel, "table1");
oleConn.Close();
return oleDsExcel;
}
catch (Exception)
{
return null;
throw;
}
}
二、将DataSet里面的数据遍历插入到对应的数据库
首先判断excel时候存在,当然如果你已经知道文件的所在位置,这一步可以跳过。
string filename = @"C:\Users\Administrator\Desktop\礼品列表\礼品张曦合并版本(卡券创建完整信息).xlsx";
if (!System.IO.File.Exists(filename))
throw new Exception("指定路径的Excel文件不存在!");
其次将DataSet里面的数据,读取出来并包装成数据插入语句。
DataSet ds = ReadExcel(filename);
List<string> list = (from DataRow row in ds.Tables["table1"].Rows select String.Format("insert into test_1(id,card_id,card_type,标题,产品价格,单位,礼物数量,商场,礼物编号) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')", row[], row[], row[], row[], row[], row[], row[], row[], row[])).ToList();
2.1 将DataSet里面的数据插入到mysql
插入我们使用ADO.NET来处理,首先得在扩展里添加引用 MySql.Data; 和 MySql.Data.MySqlClient;
string strConnect = ConfigurationManager.ConnectionStrings["MySqlConnString"].ToString();
//strConnect="server=127.0.0.1;user id=***;password=***;persistsecurityinfo=True;port=3306;database=test";
MySqlConnection conn = new MySqlConnection(strConnect);
conn.Open();
foreach (string item in list)
{
MySqlCommand comn = new MySqlCommand(item, conn);
comn.ExecuteNonQuery();
}
conn.Close();
2.2 将DataSet里面的数据插入到sqlserver
需添加引用 using System.Data; using System.Data.SqlClient;
string strConnect = ConfigurationManager.ConnectionStrings["SqlServerConnString"].ToString();
//或strConnect="Data Source=.;Initial Catalog=test;Persist Security Info=True;User ID=***;Password=***;MultipleActiveResultSets=true";
SqlConnection conn = new SqlConnection(strConnect);
conn.Open();
foreach (string item in list)
{
SqlCommand comn = new SqlCommand(item, conn);
comn.ExecuteNonQuery();
}
3.用工具导入Excel
我使用的是Toad for SQL Server 6.5 Freeware和Toad for MySQL 7.2 Freeware和SQL SERVER2008(这里仅以Toad for MySQL 7.2 Freeware为例)




C#将Excel数据导入数据库(MySQL或Sql Server)的更多相关文章
- 使用python将excel数据导入数据库
使用python将excel数据导入数据库 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接 ...
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- 将excel数据导入到mysql的方法
文本框被键盘遮挡到了,不会再获取焦点的时候被顶到键盘顶部.解决方案:设置A的Position为绝对定位absolute即可,其他几种定位方式未测试,但是不能是fixed ,正是因为这种定位方式,导致它 ...
- 如何把excel数据导入数据库
这里介绍2种把excel数据导入oracle数据库的方法. 1. 在excel中生成sql语句. 1)在数据列的右侧,第一行的任何位置输入="insert into table(xx,yyy ...
- Excel数据导入数据库
maven依赖 <!--excel相关依赖--> <dependency> <groupId>org.apache.poi</groupId> < ...
- 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- PHPExcel将Excel数据导入数据库
<?php //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据 ...
- ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)
ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例1.下载ActiveMQ后直接解压,我下载的是apache-activemq ...
- 将Excel数据导入数据库
Excel如下,这页工作表名叫“线路” 数据库表如下 using System; using System.Collections.Generic; using System.Linq; using ...
随机推荐
- MongoDB:逐渐变得无关紧要
我与MongoDB的关系可分为三个阶段.对于目前处于第三阶段的我来说,这款产品似乎变得无关紧要了.很快你就会明白为什么我这么说. 阶段一:痴迷 我与MongoDB的第一次接触十分神奇:一个poligl ...
- 解决Fedora升级时nvidia显卡问题
升级到新版Fedora后登录不了gnome 小编最近升级了Fedora 20到21,结果就如之前从Fedora 19升级到20时类似,又出问题了.Fedora你到底行不行... gnome登录不了 ...
- 读书时间《JavaScript高级程序设计》四:BOM,客户端检测
隔了一段时间,现在开始看第8章. 第8章:BOM BOM提供了很多对象,用于访问浏览器的功能.BOM的核心对象是window,它表示浏览器的一个实例. window对象是通过javascript访问浏 ...
- LeetCode Solutions : Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...
- oracle 打开trace,并分析trace
SQL> oradebug event 10046 trace name context forever,level 8 ORA-00072: process "Unix proces ...
- 真实故事:网站遭遇DOS攻击
网站遭遇DOS攻击 一个.事件背景 长假对于IT人员来说是个短暂的休整时期,可IT系统却一时也不能停.越是节假日,越可能出大问题,以下要讲述的就是一起遭受DOS攻击的案例. 春节长假刚过完,小李 ...
- 如何成为游戏的生产者——第二章:如何开始你的编程(开发环境的搭建、C++语言适应)
如何成为游戏的生产者--文章二章:怎样開始你的编程 小故事:上节说到我六年级打开了那本C语言的书,然后其实我还是没看懂.好像看懂了一些printf语句.之后遇到了史无前例的困难--怎么让代码执行起来. ...
- POJ3617 Best Cow Line 馋
虽然这个问题很简单,但非常好,由于过程是很不错的.发展思路的比较 并鼓励人们,不像有些贪心太偏,推动穷人,但恼人 鉴于长N弦S,然后又空字符串STR.每当有两个选择 1:删S增加虚假的第一要素STR于 ...
- nginx 提供静态内容
Serving Static Content 提供静态内容 原文地址:http://nginx.com/resources/admin-guide/serving-static-content/ Th ...
- vs2010模板修改
使用visual studio 2010好久了,也遇到了不少问题,下面跟大家分享一些. 模板修改 说明: 主要工具: 以visual studio 2010作为例子,具体目录可能会根据不同的安装目录 ...