以下例子转载:互联网

先在类中定义一个方法名为ExecleDs的方法,用于将Excel表里的数据填充到DataSet中,代码如下

public DataSet ExecleDs(string filenameurl,string table)
2          {
3             string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" +filenameurl+ ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
4              OleDbConnection conn = new OleDbConnection(strConn);
5        
6              OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]",conn);
7              DataSet ds = new DataSet();
8              odda.Fill(ds,table);
9       
10             return ds;
11 
12          }

然后设计页面,在此作个简单的页面
<table style="width: 395px; height: 84px" border="1">
2        <tr>
3            <td style="width:380px" align="center">
4                 批量导入用户信息</td>
5        </tr>
6        <tr>
7            <td style="width: 100px">
8                <asp:FileUpload ID="FileUpload1" runat="server" Width="380px" /></td>
9        </tr>
10        <tr>
11            <td style="width:380px" align="center">
12                <asp:Button ID="Button1" runat="server" Text="添加" OnClick="Button1_Click" /></td>
13        </tr>
14    </table>
15    <asp:Label ID="Label1" runat="server"   Width="466px"></asp:Label>
当点击添加按钮时激发事件,代码如下
protected void Button1_Click(object sender, EventArgs e)
  {
       if (FileUpload1.HasFile == false)
      {
            Response.Write("<script>alert('请您选择Excel文件')</script> ");
           return;//当无文件时,返回
        }
       string IsXls=System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();
        if (IsXls != ".xls")
      {
            Response.Write("<script>alert('只可以选择Excel文件')</script>");
          return;//当选择的不是Excel文件时,返回
        }
       string error = null;
       Access.Class1 ac = new Access.Class1();
       SqlConnection cn = ac.myConnection();
        cn.Open();
       string strpath = FileUpload1.PostedFile.FileName.ToString();   //获取Execle文件路径
       string filename = FileUpload1.FileName;                       //获取Execle文件名
         DataSet ds = ac.ExecleDs(strpath,filename);
       DataRow[] dr = ds.Tables[0].Select();                        //定义一个DataRow数组
        int rowsnum = ds.Tables[0].Rows.Count;
      if (rowsnum == 0)                                 
      {
            Response.Write("<script>alert('Excel表为空表,无数据!')</script>");   //当Excel表为空时,对用户进行提示
       }
     else
      {
         for (int i = 0; i < dr.Length; i++)
           {
               string YHMC = dr[i]["YongHuMingCheng"].ToString();
            string YHMM = dr[i]["YongHuMiMa"].ToString();
                string DQRQ = dr[i]["DaoQiRiQi"].ToString();
              string ZT = dr[i]["ZhuangTai"].ToString();
                string TJSJ = dr[i]["TianJiaShiJian"].ToString();
               string JXDM = dr[i]["JiaXiaoDaiMa"].ToString();
               string sqlcheck = "select count(*) from DC_YongHuLieBiao where YongHuMingCheng='" + YHMC +"'And JiaXiaoDaiMa='" + JXDM + "'";  //检查用户是否存在
                bool ch = ac.check(sqlcheck);    
             if (ch == true)
              {
                   string insertstr = "insert into DC_YongHuLieBiao(YongHuMingCheng,YongHuMiMa,DaoQiRiQi,ZhuangTai,TianJiaShiJian,JiaXiaoDaiMa) values('" +
                                         YHMC + "','" + YHMM + "','" + DQRQ + "','" + ZT + "','" + TJSJ + "','" + JXDM + "')";
                    SqlCommand cmd = new SqlCommand(insertstr,cn);
              try
                  {
                     cmd.ExecuteNonQuery();
                    }     catch (MembershipCreateUserException ex)       //捕捉异常
                    {
                        Response.Write("<script>alert('创建用户:"+ex.Message+"')</script>");
                    }
              }
              else
             {
                    error += "<em style='color:red;font-sixe:25px'>"+YHMC+"</em>用户已存在,此行记录无法插入!请修改用户再进行插入 <br>";   //若用户存在,将已存在用户信息打出,并提示此用户无法插入
                   continue;
                 }
           }
           Response.Write("<script>alert('Excle表导入成功!')</script>");
            Label1.Text = error;
         }
         cn.Close();
    }

c#关于EXCEL导入数据库的做法的更多相关文章

  1. excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution

    当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...

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

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  3. Java实现将Excel导入数据库和从数据库中导出为Excel

    实现的功能: 用Java实现从Excel导入数据库,如果存在就更新 将数据库中的数据导出为Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的 ...

  4. 记录-java(jxl) Excel导入数据库

    本内容主要包括(文件上传.excel2003数据导入数据库)excel导入数据库功能需要jxl  jar包支持 下面是文件上传的前端测试代码 <%@ page language="ja ...

  5. Excel导入数据库百万级数据瞬间插入

    Excel导入数据库百万级数据瞬间插入 百万级别,瞬间,有点吊哇

  6. Hibernate+jxl+excel导入数据库

    在将excel中的10w行数据导入数据库中时,总发生内存溢出,一开始使用的Spring+Hibernate;不知如何使用批处理,后来只是用Hibernate,10W行数据几分钟完成, 代码如下: pu ...

  7. 使用thinkphp框架实现Excel导入数据库

    之前讲过php实现Excel导出数据库的随笔,链接:https://www.cnblogs.com/nuanai/p/6727711.html 之前的项目用到较多的就是Excel导出,现在用到了Exc ...

  8. Excel导入数据库(三)——SqlBulkCopy

    上篇博客中介绍了批量导入数据库的方法:下面介绍一下批量导入过程的核心——SqlBulkCopy类. 下面先介绍一些原理性的东西:SQLBulkCopy类,通常用于数据库之间大批量的数据传递.即使表结构 ...

  9. 第三次作业---excel导入数据库及显示(2)

    发现第一次做的功能有点复杂,不能理解.而且第一次的想法是在页面上上传文件,连接并导入到数据库,并在页面上显示.后来才看到要求是直接在本地将数据导入数据库就行了,然后显示.所以才出现了一堆看不懂也解决不 ...

随机推荐

  1. 批量修改文件名java

    package test0715; import java.io.File; public class FileRename {public static void main(String[] arg ...

  2. PCB打样镀层问题

    现在大部分pcb打样所用PCB板一般有锡板和金板之分(一般根据客户要求和产品特 性选择),那么它们有什么区别呢?现在我将他们的区别作比较如下: 1. 从成本方面来说,锡板价格低,金板价格高. 2. 从 ...

  3. HDU 5059 Help him

    题解:先判断第一个是否负号.如果是把第一个符号拿掉之后判断后面的长度是否<=12,并且是否数字,然后转化成数字看看是否在[a,b],注意-0这个数据. 如果不是判断长度是否<=12,并且是 ...

  4. Hash 表详解(哈希表)

    散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列 ...

  5. uber奖励和账单详解

    为了让各位车主轻松理解奖励政策和账单明细的核算方法,我们特意制作#奖励详解#的专题文章,保证您五分钟内掌握看懂账单的全部要领和诀窍. 第一部分:收入说明 看到收入说明的账单是不是有些晕呢,来来,我们一 ...

  6. Turn the corner (三分)

    Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  7. 新手不得不注意HTML CSS 规范

    作为一名新进的程序菜鸟,根本不知道从哪里开始学起好,前辈都说HTML CSS 规范是一个十分需要注意的点,要我记下,特地转来保存一下,大家相互学习 //总论 本规范既然一个开发规范,也是一个脚本语言参 ...

  8. BZOJ 2314: 士兵的放置( 树形dp )

    树形dp... dp(x, 0)表示结点x不放士兵, 由父亲控制: dp(x, 1)表示结点x不放士兵, 由儿子控制: dp(x, 2)表示结点x放士兵. ---------------------- ...

  9. quartz 定时调度持久化数据库配置文件

    1 下载quartz对应版本jar包 2 初始化对应数据库sql(版本需要对应,不然会出现少字段的情况) ,下载地址  https://github.com/quartz-scheduler/quar ...

  10. C语言的指针变量

    C语言的指针变量 在C语言中,变量是固定范围的存储空间,它存储的是赋给他的值, 比如: ; /* 这里是定义一个整型变量a,并把12这个值存储在a的地址空间上 这个地址空间是系统随机分配的,对用户是透 ...