将Excel导入数据库大致流程:  Excel数据->DataSet->数据库

需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGrid也需要。

此为背景

---------------------------割割快乐--------------------------------------------------------------------------

1.将Excel读入到DataSet中:

首先用OleDbDataAdapter这个小桥梁把Excel中的数据选出来,为什么Excel中的数据能够用OleDbDataAdapter选出来呢?这就是微软从中做了手脚,把Excel当做一个Access数据库表来看,所以就把Excel数据导入数据库转化成了数据库与数据库之间通过DataSet这个掮客传递数据的故事。那么这个手脚是怎么做的呢?问我我也不知道,我们只需要安装微软提供的Office system 驱动程序的数据连接组件,才不会报未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序的错。

分析完了就看代码:

        DataSet dsRet = new DataSet();
//OleDbDataAdapter的操作SQL语句,[Sheet1$]是你Excel表格的sheet名字,[]和$不能少
string sqlabc = "select * from [Sheet1$]";
//OleDbDataAdapter的连接字符串,那个filePath就是你本地Excel的路径,其余就是照抄,不能写错
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=No;IMEX=1'";
OleDbDataAdapter oada = new OleDbDataAdapter(sqlabc, strConn);
oada.Fill(dsRet,"Result");

这样就把Excel里面的数据放到DataSet里面了。

2.将DataSet里的数据放到数据库(Oracle为例)中

这里我用的是最笨的方法,用循环一行一行往里硬插,当然了,有人说用这种方法方便:首先把源数据表选出来的数据存入DataSet1,把我从Excel中取的数据存入DataSet2,然后用DataSet的Merge方法合并到DataSet1中,最后用XXXDataAapter的update方法更新数据库。不过这样没成功,原因是因为你Excel的表头是A,B,C...等等,而你DataSet1的表头是你为数据库的数据自己写的有意义的字段名,你横不能把数据库中的表的字段叫A,B,C吧!所以还是一个一个插稳妥。

分析完了看代码:

       string connt = "Data Source=172.20.65.236;User Id=bjmedicare_qy;Password=bjmedicare_qy";//连接数据库
string sql = "insert into test_m(F1,F2,F3,s_month,oper) values(:F1,:F2,:F3,:S_MONTH,:OPER)";//必须与数据库字段名一致
OracleConnection conn = new OracleConnection(connt);
conn.Open();
OracleCommand cmd = new OracleCommand(sql, conn);
//循环着插,还能插入自己设定的数据
for (int i = ; i < ds.Tables["Result"].Rows.Count; i++)
{
//这里需要考虑数据格式
cmd.Parameters.Add("F1", OracleType.VarChar).Value = ds.Tables["Result"].Rows[i][];
cmd.Parameters.Add("F2", OracleType.VarChar).Value = ds.Tables["Result"].Rows[i][];
cmd.Parameters.Add("F3", OracleType.Number).Value = ds.Tables["Result"].Rows[i][];
cmd.Parameters.Add("S_MONTH", OracleType.VarChar).Value = DateTime.Now.ToString("yyyyMM");
cmd.Parameters.Add("OPER", OracleType.VarChar).Value = "admin";
}
conn.Close();
conn.Dispose();

这样就基本完成了题目所要求的内容。

ASP.NET 将Excel导入数据库的更多相关文章

  1. asp.net 中excel 导入数据库

    protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(Sy ...

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

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

  3. C# ASP.NET CSV文件导入数据库

    原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. SOCKET 地址

    地址格式: 函数bind和getsockname使用通用数据类型:struct sockaddr*来指向socket地址. #incude <sys/socket.h> struct so ...

  2. ASP.NET实现弹出框真分页将复选框选择的数据存到数据库中(四)

    这是第四步点击保存将信息存入数据库中. 这个就简单了利用ajax将JSON字符串传到后台然后这里有个知识点就是将DataTable直接存入数据库中.代码如下: 一.界面获取数据JS代码: //保存订单 ...

  3. 菜鸟学习Hibernate——多对多关系映射

    Hibernate中的关系映射,最常见的关系映射之一就是多对多关系映射例如用户与角色的关系,一个用户对应多个角色,一个角色对应多个用户.如图: Hibernate中如何来映射这两个的关系呢? 下面就为 ...

  4. ExtJS 等待两个/多个store加载完再执行操作的方法

    ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架. Extjs加载Store是异步加载的,这有很多好处.但是当我们要在两个或多个不同的store加载完再执行一些操作 ...

  5. iOS8 蓝牙设备的重连接(retrieve) Swift实现

    今天App写到了蓝牙重连的阶段,以前针对sdk 6.0写的代码,蓝牙设备的回复是通过 - (void)retrievePeripherals:(NSArray *)peripheralUUIDs 然后 ...

  6. Jquery Mobile局部刷新后js和css失效,需局部渲染

    $(function () {    $("#submit").click(function(){      var storage = window.localStorage;  ...

  7. JavaScript显示输出

    记得c语言里的printf和java里的println吗,那么在JavaScript中怎么实现同样的功能呢 window.onload = function() { var para = docume ...

  8. apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出

    用到了apache 的 commons-net-3.0.1.jar 和 log4j-1.2.15.jar 这连个jar包 JAVA 代码如下: package com.bjut.edu.cn.ftp; ...

  9. C#绘制工行Logo

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. OpenCms 集成外部Solr Server

    OpenCms默认是以内嵌的Solr作为全文搜索服务的,不过我们也可以配置一个独立的Solr搜索服务器 设置外部Solr Server 1. 从Solr 官方站点http://lucene.apach ...