当前位置:编程学习 > C#/ASP.NET >>

EXCEL倒入数据时的重复性检查和提示问题,进来看看,你肯定会遇到!!

是这样的,一些数据必须从另外一个项目导出EXCEL,然后再倒进我现在的项目,记录行数大概600-700,不是太多,也不算少(相对人工来说),EXCEL数据导入到数据库这块没问题,已经做好,但是里面存在一个数据检查重复,有的是完全一样,覆盖不覆盖没问题,有的是有些字段不一样,
打个比方有这样一个表
缴费表
用户ID  月份  缴纳金额


如果在导入时(导入是一条一条导入的),检查到符合条件的,比如用户ID和月份一直的前提下,缴纳金额不一样的情况,需要提示有重复,需要操作者手工判断覆盖还是不覆盖,这样都可以做出来,但是询问操作的时候会卡在那里(需要等操作判断),导入时肯定是连在数据库的,效率不太高,这是其一,而且600-700条会碰到比较多重复的情况,一条一条提示操作者操作也不是太友好

表述的不大好,大家肯定碰到过这种问题,你们是怎么处理的?可以完全按你们的做法来,只要实现结果和操作友好就行,谢谢! --------------------编程问答-------------------- 没人吗? --------------------编程问答-------------------- 先全部导入到数据库,去掉完全重复的. 
之后再按照要求一条一条检查操作. --------------------编程问答-------------------- 版主,这里的人气好低啊 --------------------编程问答-------------------- 读取表格然后跟程序里面的数据检查好了以后再插入。

读取表格跟access 差不多。 --------------------编程问答-------------------- 我的做法是先倒入到一个临时表里,然后根据条件在进入主表
毕竟在SQL中判断比较方便,呵呵 --------------------编程问答-------------------- 同意楼上的做法,支持 --------------------编程问答-------------------- 我是从临时表取 插入的时候 先检查是否重复 --------------------编程问答-------------------- 导入之前就提示:重复数据是覆盖还是保留?下面的就照办 --------------------编程问答--------------------
引用 8 楼 net_lover 的回复:
导入之前就提示:重复数据是覆盖还是保留?下面的就照办
关键是不是一成不变的,要人为的判断 --------------------编程问答-------------------- --------------------编程问答-------------------- B/S程序要进行服务器、客户端往返的,你进行一次提示就得往返一次,你可以分步进行
第一遍不进行数据的导入,而是只进行判断,全部判断完毕,再进行覆盖还是保留 --------------------编程问答--------------------
引用 9 楼 sj6071 的回复:
引用 8 楼 net_lover 的回复:
导入之前就提示:重复数据是覆盖还是保留?下面的就照办
关键是不是一成不变的,要人为的判断

...先判断,把重复的加入一个新的List里,不重复的直接导入,然后弹出新窗体,datagridview载入重复列表,增加checkbox列,覆盖的在里面画勾,点击确定,再次导入 --------------------编程问答-------------------- SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\a.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]
上传excel文档到服务器,再打开服务器上excel导入数据到数据库。   
遍历excel,实现数据集更新,插入数据到数据库   
using(OleDbConnection myConn = new OleDbConnection(""))
  {
  myConn.Open();
  string str = "SELECT * FROM [Sheet1$]";   
  OleDbDataAdapter myCommand = new OleDbDataAdapter(str, myConn);
  DataSet ds= new DataSet();
  myCommand.Fill(ds);
  myConn.Close();
  }
重复判断
if not exists (select 1 from dt where id=@id) insert ..
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,