多语言展示
当前在线:310今日阅读:176今日分享:34

c#.net实现将excel数据批量导入oracle

c#.net实现excel导入sqlserver做过的朋友不少,也很容易实现或者到网上搜索一下,方法很多,实现起来也很容易。但是要用c#将excel数据批量导入oracle数据库方法不是很多,网上搜索了下,太多的方法,我试了都有问题。经过一翻研究,总结了如下可行的方法,供大家参谋。
工具/原料
1

visual studio 2008或以上

2

excel2003

步骤说明

只说主体功能实现部分,其他内容不是本章内容,不做说明。功能实现分三步:1、制定格式:数据库表结构、EXCEL模板结构2、下载上传:下载制定好的excel模板,填写数据,并上传到服务器3、导入oracle:读取上传的excel,批量插入到excel

一、制定格式

首先制定好数据格式,要导入表的字段。EXCEL模板的数量都要在oracle表的字段里面,oracle表里面的字段可以比excel模板里面多(不在的导入我没有试过)

二、制作上传功能
1

用.net将excel表格上传到服务器目录中,增加.net页面使用FileUpload控件来上传excel文件,添加一个按钮'上传数据',一个按钮'下载模板',可以添加一个数据显示控件GridView用于显示上传数据。

2

程度实现的方法,主体如下,主要用到了两个函数,Server.MapPath,获取保存文件的服务器地址;SaveAs,保存文件到服务器上,即上传文件到服务器上了。

三、导入oracle
1

这一步是重点,详细解说下!首先我们用到了一个第三方控件,NPOI,专用于.net上传、导入excel,兼容性好!

2

先将上传的excel数据读到取datatable中,参数upFilePath:刚才上传的excle文件的地址,参数'Sheet1':excel中工作表的名称保持与上传的excel工作表的名称一样就行。参数0:从第几个工作表开始读。DataTable dt = RenderDataTableFromExcel(upFilePath,'Sheet1',0);

3

RenderDataTableFromExcel就是引用的第三方控件NPOI,使用方法可以在网上查找资料, 第三方控件拿过来后直接调用即可。下图是部分NPOI的主体功能!

4

OracleCommandBuilder ocb = new OracleCommandBuilder(da);使用类OracleCommandBuilder将数据写入oracle

5

da.SelectCommand.CommandText = 'SELECT * FROM T_CUS_VENDSTOCK WHERE ROWNUM=0';这个非常重要,这个select 语句查询出来的字段要与excel中要上传的字段数量完全一致简单的说就是需要导入的字段。

6

da.InsertCommand = ocb.GetInsertCommand();告诉系统是做插入操作。

7

最后是打开连接,da.Update(dt);执行插入。

推荐信息