导入数据时,验证数据库中是否存在相同的数据

用C# 开发的网页,做得是将EXCEL数据导入到数据库,导入之前要先验证是否存在相同的数据,以防止数据重复,问题是,除了对数据一条条验证之外,还有别的方法吗?(我考虑:一条条验证,会造成对数据库频繁的连接,检索,服务器压力大啊)
代码该怎么写啊,头疼!
谢谢!
使用的是oracle 数据库,c#开发语言,
我想实现的是,如果存在相同数据,则不予执行插入,并告知用户!

针对这种情况,可以先将这份Excel数据全部导入到一张临时表中,然后表与表之间进行验证,对已经存在的记录进行标记,然后将标记数据删除,剩下的就是需要导入数据库表的数据,再导入就可以了。
这种做就不存在你所说的问题了。追问

使用的是oracle 数据库,c#开发语言,
我想实现的是,如果存在相同数据,则不予执行插入,并告知用户!
如果插到临时表再比较的话,好像没法提示啊?

追答

你是采用的B/S架构方式,还是C/S架构方式?
采用临时表进行数据比对,对于重复的记录可以再返回给用户啊!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-21

用的是sqlserver吗?我觉得要看

    你在验证是否重复的时候的字段数量和长度占所有字段长度的比例?

假如说你几乎所有的字段都需要验证,那你可以在使用存储过程,在存储过程里面验证后并插入。如果说你只是验证一个主键,那不需要验证,因为sql会帮你验证。如果是相比全部字段很少的几个字段的验证,我觉得可以用代码验证,因为这样可以减少所有数据传输过去的时间。

    估计重复行占所有行的比例?

    如果重复行估计很少,那么存储过程验证,如果很多,用代码验证。

本回答被网友采纳
第2个回答  2013-07-21
可以考虑先将excel表导入到一张临时表中,然后将此临时表与目的数据表求差,得到不重复的数据,再将这部分数据插入到目的数据表。最后删除临时表。这样只需要一次连接、一次检索。
第3个回答  2013-07-21
可以根据你要导入的数据进行检索,一旦检索到数据库中的相同数据,此条数据就是重复数据,如此进行下去就行了!
第4个回答  2013-07-21
设置主键

c# 在插入数据时,如何判断数据库中有无相同数据
可以贴两句你访问数据的代码就好说了,sql语句:select count(*) from 表名 where 除Id外字段1=当前插入数据1 and 除Id外字段2=当前插入数据2 and 后面省略 。。如果结果=0没有相同数据。反之有相同数据。

asp数据重复验证怎么解决
1、在提交数据之前,先查询数据库中是否已存在相同的数据。2、如果存在相同的数据,向用户显示错误信息,要求其更改数据。3、如果不存在相同的数据,则接受用户提交的数据。4、在ASP程序中,可以使用SQL语句或LINQ查询来实现查询数据库中是否已存在相同的数据。5、还可以利用ASP提供的表单验证功能,在提交...

请教:用Java怎么判断插入数据库里面重复的
插入之前,用你想插入的数据作为查询条件,在数据库查询一下,如果有返回数据,那就是数据库已经存在这条数据,反之该数据在数据库不存在 String name = 想插入的数据;User user = service.getName(name);\/\/查询数据库if(null==user) {\/\/该数据数据库不存在}else {\/\/该数据已经存在该数据} ...

如何查找数据库中的重复数据
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录...

...在导入Excel数据时检查Mysql数据库内容是否存在,避免重复录入?_百度...
可以提前做一个统一查询 sql=mysql_query("select distinct Code from test ",$conn);sqlvalue=[];while($row=mysql_fetch_array($sql)){ sqlvalue[]=$row['Code'];} 另外 ,可以在建表的时候设置unique index,来彻底避免插入重复记录,如果没过滤好插入重复记录的时候,系统会直接报错 ...

如何验证主从数据库数据内容一致
开另外一个会话,将 master 上的 general log 打开:然后通过 pt-table-checksum 进行一次比较:查看 master 的 general log,由于 mysqlslap 的影响,general log 中有很多内容,我们找到与 pt-table-checksum 相关的线程:将该线程的操作单独列出来:操作比较多,我们一点一点来说明:这里工具调小了 ...

关于PHPExcel 导入导出大量数据及导入时判断是否存在重复
一条一条插入数据库效率是很慢的,要快速插入数据库,你可以一次插入150条左右 代码: INSERT INTO table_name ( field_1, field_2 ) VALUES ( val_1, val_2 ), ( val_1, val_2 ), ( val_1, val_2 ), ( val_1, val_2 ), ( val_1, val_2 ) ... 等100多个拼接的超大...

导入时检查数据库里是否存在数据
导入时检查数据库时判断结果是否为空,有值就修改,或者不操作。没值,就插入修改。在添加新的数据库,表或字段的时候,添加之前一般都会检查是否已经存在,这样做的好处是保证脚本的稳定性,再次执行的时候也不会报错。

...excel表格判断是否有和数据库某字段相同的数据,若果有的话就跳过...
导入时先使用SELECT 语句查询此数据是否存在, 若存在就不执行插入语句.JAVA中加个判断就可以了.

mysql数据库中如何导入重复数据?
重复导入已存在的数据库,有以下两种导入方法IMP和IMPDP;2 IMP导入的时候:如果已经存在此表, 会告诉你无法创建此表,因为表已经存在。同时使用参数full=y ignore=y 那就是全部导入,把dmp里的所有数据插入到表里面。换句话说会有重复,如果该表有主键,重复的会因为违反约束,导入不成功,但不重复的...

相似回答