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[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8])).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为例)

  

时间: 2024-08-05 00:17:45

C#将Excel数据导入数据库(MySQL或Sql Server)的相关文章

EXCEL数据导入数据库实例(NPOI)

Default.aspx 页面代码: 引用了:    <script src="../../js/jquery.easyui.min.js" type="text/javascript"></script> <form id="fileForm" runat="server" enctype="multipart/form-data" method="post&quo

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

引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作

将excel数据导入到mysql的方法

文本框被键盘遮挡到了,不会再获取焦点的时候被顶到键盘顶部.解决方案:设置A的Position为绝对定位absolute即可,其他几种定位方式未测试,但是不能是fixed ,正是因为这种定位方式,导致它无法被顶上去 某日同事丢给我一个看上去复杂的查询(实际就涉及两张表,套来套去)说只是换了日期条件,但一个查询5秒出数据,一个根本查不出来.现在整理下解决过程,及涉及的知识点. 关于Nginx模块开发的博客资料,网上很多,很多.但是,每篇博客都只提要点,无法"step by step"照着做

PHPExcel将Excel数据导入数据库

1 <?php 2 //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: 3 //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据保存进数据库 4 require_once "./PHPExcel.class.php"; 5 require_once "./PHPExcel/Cell/DataType.php"; 6 require_once "./PHPExcel/IOFa

excel数据导入数据库

1 using (FileStream fs = File.OpenRead(@"D:\成绩管理\名单.xls")) 2 { 3 IWorkbook wk = new HSSFWorkbook(fs);//根据文件流创建workbook 4 if (wk.NumberOfSheets > 0) 5 { 6 ISheet sheet = wk.GetSheetAt(0);//创建工作表 7 //学号 姓名 性别 出生年月 专业 8 for (int r = 1; r <= s

将excel数据导入到mysql

一.            将excel数据另存为txt文件 二.            将txt文件拷贝到mysql服务器中 保证txt文件在mysql系统中打开无乱码 三.            创建库和表 CREATE TABLE `list2` ( `name` varchar(50) DEFAULT NULL, `changjia` varchar(50) DEFAULT NULL, `weight` varchar(100) DEFAULT NULL, `count` varchar

ASP.NET Excel数据导入数据库

http://www.cnblogs.com/xiaopin/archive/2011/03/31/2001199.html  原网址,这个写的特别好:    其他实现方式参考:http://blog.csdn.net/lee576/archive/2011/03/02/6217811.aspx protected void btnImport_Click(object sender, EventArgs e) { if (FileUpload1.HasFile == false)//HasFi

POI 读取Excel文件,将Excel数据导入数据库

/** * 读取Excel单元格所显示的字符串(显示什么就返回什么) * 创建人:minlorry * 创建日期:2015-07-31 * 更新日期:2015-07-31 * 更新说明:生硬地处理了数值单元格的处理,日期单元格未作处理. * @param cell Excel单元格 * @return String 单元格显示的字符串 */ public static String getStringValue(Cell cell) { String stringValue = "";

ASP.NET Excel数据导入数据库---2

protected void btnImport_Click(object sender, EventArgs e) { if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件 { Response.Write("<script>alert('请您选择Excel文件')</script> "); return;//当无文件时,返回 } string IsXls = System.IO.Pat