还有数据可以都先保存到DataTable中,DataTable设置主键,内存的话要比数据库快得多,就是对于1千W的数据就不好说了
[quote=引用 8 楼 liuchaolin 的回复:] 其它字段的合法与否不敢保证,但找出主键或某个字段数据重复是可以的 表的ID先把主键去掉,然后先不用考虑对与错,都直接导入到表中,最后再去用 row_number() OVER(PARTITION BY 主键或其它字段) as rownum 进行查找rownum>=2的数据为重复数据
其它字段的合法与否不敢保证,但找出主键或某个字段数据重复是可以的 表的ID先把主键去掉,然后先不用考虑对与错,都直接导入到表中,最后再去用 row_number() OVER(PARTITION BY 主键或其它字段) as rownum 进行查找rownum>=2的数据为重复数据
主键ID重复及其他字段合法性用数据库里的唯一索引(主键必然是唯一的)和表约束来做 这样你程序只管往数据库里插就好了,完成后接收出错信息,再进行后续操作
感觉校验重复ID不用自己去查数据库校验,LZ将可以插的记录都像数据库进行插入,ID如果有重复数据库自己会报错
先批量导入到数据库的临时表中,临时表的结构和目标表相同,然后分析临时表的数据,如果有问题都能精确到提示哪一行有错。
在新建一个临时表 SqlBulkCopy 大批量导入、瞬秒
62,046
社区成员
669,048
社区内容
加载中
.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。
希望和大家一起共同营造一个活跃、友好的社区氛围。
试试用AI创作助手写篇文章吧