zoukankan      html  css  js  c++  java
  • 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:UsersAdministratorDesktop礼品列表礼品张曦合并版本(卡券创建完整信息).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为例)

      

  • 相关阅读:
    dblink && 视图 数据库二合一
    oracle mybatis 逆向工程 应当注意的问题
    关于使用vue搭建前后端分离的项目,部署过程遇到的问题
    详解vue静态资源打包中的坑与解决方案
    bootstarap table 分页导出 vue版
    react中两个控件不是父子关系该怎么传递消息或任意控件怎么传递消息
    虚拟DOM中key的作用
    修改Antd的List列表的单个数据行
    移动端开发如何关闭手机键盘
    在一行显示两个数据,左边的数据右对齐,右边的数据左对齐
  • 原文地址:https://www.cnblogs.com/xuhang/p/4151587.html
Copyright © 2011-2022 走看看