关于C#导入excel 数据到 数据库
发布网友
发布时间:2022-04-30 15:07
我来回答
共2个回答
热心网友
时间:2022-06-25 22:59
这种方式对几万以上数据量当然头疼,看你代码,应该是excel至sqlserver,你可以尝试下我导入access的方法,因为sqlser与access都是微软的,所以相似性很高:
思路上,不是用循环逐条填入,而是用access或sqlserver的分析器或Dts自动完成导入过程。
因为目前研发的系统环境不在手边,你将就下,希望能搞定。
将excel导入access,一句sql搞定
select * from [Sheet1$] IN "d:\tmpExcel.xls" "EXCEL 8.0;"
在access中,这样就能查找excel的表记录,相同的,你可以将结果导出至新表,如select into,或insert into将结果保存。此法后台直接由access负责执行,其效率你懂的
SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase]
FROM source
//select * from [sheet1$] into newTable in "d:\tmpExcel.xls" "excel 8.0"
INSERT INTO target [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])
//insert into newTable(col1,col2,col3) Select col1,col2,col3) from [sheet1$] in "d:\tmpExcel.xls" "excel 8.0"
因为不知你导入的数据是研发用,还是用户用,若是研发用,那么手工导入就更方便了 用access的导入,或sqlserver的dts导入功能,然后选择excel的列字段一个个对应就好。
此刻,你应该不急着将sql代码放入程序执行,而是在查询分析器中先运行,这样有利于检查语法和导入的性能。
热心网友
时间:2022-06-25 22:59
不使用COM组件导入,使用datatable导入。它是先缓存导入,如果没有导出成功则会清理缓存。
这里有个事例楼主可以看看http://www.glslian.com/article.asp?id=51