最近一直很忙,很久没写博客了。今天给大家讲解一下如何用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)的更多相关文章

  1. 使用python将excel数据导入数据库

    使用python将excel数据导入数据库 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接 ...

  2. [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  3. 将excel数据导入到mysql的方法

    文本框被键盘遮挡到了,不会再获取焦点的时候被顶到键盘顶部.解决方案:设置A的Position为绝对定位absolute即可,其他几种定位方式未测试,但是不能是fixed ,正是因为这种定位方式,导致它 ...

  4. 如何把excel数据导入数据库

    这里介绍2种把excel数据导入oracle数据库的方法. 1. 在excel中生成sql语句. 1)在数据列的右侧,第一行的任何位置输入="insert into table(xx,yyy ...

  5. Excel数据导入数据库

    maven依赖 <!--excel相关依赖--> <dependency> <groupId>org.apache.poi</groupId> < ...

  6. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  7. PHPExcel将Excel数据导入数据库

    <?php //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据 ...

  8. ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)

    ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例1.下载ActiveMQ后直接解压,我下载的是apache-activemq ...

  9. 将Excel数据导入数据库

    Excel如下,这页工作表名叫“线路” 数据库表如下 using System; using System.Collections.Generic; using System.Linq; using ...

随机推荐

  1. JMS and ActiveMQ first lesson(转)

    JMS and ActiveMQ first lesson -- jms基础概念和应用场景 2011-6-18 PM 9:30 主讲:kimmking <kimmking@163.com> ...

  2. HDU 4391 Paint The Wall 段树(水

    意甲冠军: 特定n多头排列.m操作 以下是各点的颜色 以下m一种操纵: 1 l r col 染色 2 l r col 问间隔col色点 == 通的操作+区间内最大最小颜色数的优化,感觉非常不科学... ...

  3. FileZilla 错误425 Can't open data connection 读取目录列表失败

    新装FileZilla FTP Server,设置好后,客户端能连接,但是出Error:[读取目录列表失败]:同时,服务端出Error:[425 Can't open data connection] ...

  4. 【Android基础】eclipse常用快捷键

    Alt+/ 内容辅助键--列出相关内容 Ctrl+shift+o 导入所需的所有类包 Ctrl+1 对现有错误的n中解决方案 Crtl+d 删除所在行或者全部 CTRL+alt+上下键 上下复制 Cr ...

  5. Java泛型Restletclient

    写一个与restletserver通信的client类.用于測试通信是否成功.而且进行交互.为了方便其它人使用.于是,写一个通用的方法封装起来,但是中途却放生了一些问题. 依照正常写法,顺序走下来是这 ...

  6. Linux高性能server规划——处理池和线程池

    进程池和线程池 池的概念 由于server的硬件资源"充裕".那么提高server性能的一个非常直接的方法就是以空间换时间.即"浪费"server的硬件资源.以 ...

  7. 【iOS开发-21】UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最以下,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...

  8. Android使用开发WebView战斗技能

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/44619181 前段时间做项目的时候.在项目中用了WebView组件,遇到了一些问题 ...

  9. 《学习opencv》笔记——矩阵和图像处理——cvMax,cvMaxS,cvMerge,cvMin and cvMinS

    矩阵和图像操作 (1)cvMax函数 其结构 void cvMax(//比較两个图像取最大值 const CvArr* src1,//图像1 const CvArr* src2,//图像2 CvArr ...

  10. 更改Calendar背景图(使用系统映像选择器)

    最近提出的申请,主接口是一个历,网上有很多第三方的日历控件,有使用ImageView实现,有使用GridView实现,它的优点是控制的灵活性. 而我选择使用本机CalendarView,关于这个控件, ...