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

用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 {\/\/该数据已经存在该数据} ...

...在导入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多个拼接的超大...

向oracle数据库中插入数据时,先判断插入数据是否重复,如果重复,通过sql...
过去处理过这样的sql题目,由于数据量特别大,不好处理。plsql程序很简单,关键是如果查询重复数据的方法,如果处理不好的话,程序运行非常缓慢。建议,修改表的结构,对一行的数据对所有数据做一个校验值,象raid5一样,这样就可以加快查询速度了,但会降低插入速度,不过速度还是有提升的 ...

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

如何检查数据库中数据的一致性
如果怀疑数据库有损坏时, 例如,使用某个表时报出表损坏的信息, 可以使用 dbcc 确定数据库中其他表是否也有损坏。 下面是dbcc的简单用法: dbcc checktable (table_name) 检查指定的表,检查索引和数据页是否正确链接, 索引是否正确排序, 所有指针是否一致, 每页的数据信息是否合理, 页偏移是否合理。 dbcc...

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

相似回答