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

把datatable中的数据批量插入oracle中

如题,网上看了不少,都是相互之间抄,也没有什么参考价值。所以来这里希望大牛帮忙解决一下。
想要完成的功能就是把excel中的数据批量导入到oracle中的数据表中。
现在已经成功读取了excel中的数据到datatable dt中,就是想要把dt中的每一行批量插入数据库对应的表中。逐条插入的就算了。先谢谢啦。
数据库中的表名为test1,字段只有id和name.dt中的格式跟数据表是一样的。
如果用OracleaDataAdapter,那个更新的sql怎么写?希望大牛给出两行代码。 --------------------编程问答-------------------- http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataset/thread/221b4ca1-813c-4681-8647-5b542a0ba6ff

这里也许有你要的答案。看里面的代码。 --------------------编程问答--------------------
引用 1 楼 keepfool 的回复:
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataset/thread/221b4ca1-813c-4681-8647-5b542a0ba6ff

这里也许有你要的答案。看里面的代码。

去研究一下 --------------------编程问答-------------------- 我是想把excel中的数据插入进oracle数据表中,现在我已经把excel中的数据读入到了datatable中了,就是想批量的把datatable中的数据插入的对应的oracle数据表中。。。 --------------------编程问答-------------------- 可以试试SqlBulkCopy --------------------编程问答-------------------- oracle11g的话应该有OracleBulkCopy --------------------编程问答--------------------
引用 3 楼 woshicainiao0107 的回复:
我是想把excel中的数据插入进oracle数据表中,现在我已经把excel中的数据读入到了datatable中了,就是想批量的把datatable中的数据插入的对应的oracle数据表中。。。

标准SQL就没有批量这个概念,本质上都是一条条的做。当然你可以使用存储过程或者事务,但是本质还是要一条条的做。 --------------------编程问答--------------------
引用 6 楼 wddw1986 的回复:
引用 3 楼 woshicainiao0107 的回复:我是想把excel中的数据插入进oracle数据表中,现在我已经把excel中的数据读入到了datatable中了,就是想批量的把datatable中的数据插入的对应的oracle数据表中。。。
标准SQL就没有批量这个概念,本质上都是一条条的做。当然你可以使用存储过程或者事务,但是本质还是要一条条的做。
    ……


那有一万条数据的话,就要有一万条insert语句吗?

ADO中有没有相应的优化的方法呢? --------------------编程问答--------------------
引用 7 楼 sundacheng1989 的回复:
引用 6 楼 wddw1986 的回复:引用 3 楼 woshicainiao0107 的回复:我是想把excel中的数据插入进oracle数据表中,现在我已经把excel中的数据读入到了datatable中了,就是想批量的把datatable中的数据插入的对应的oracle数据表中。。。
标准SQL就没有批量这个概念,本质上都是一条条的做。当然你可以使用存储过程或者事……

ADO再怎么优化也是枉然啊,这需要数据库支持。数据库可以支持批量提交,但其实也是1万次insert --------------------编程问答--------------------
引用 8 楼 wddw1986 的回复:
引用 7 楼 sundacheng1989 的回复:引用 6 楼 wddw1986 的回复:引用 3 楼 woshicainiao0107 的回复:我是想把excel中的数据插入进oracle数据表中,现在我已经把excel中的数据读入到了datatable中了,就是想批量的把datatable中的数据插入的对应的oracle数据表中。。。
标准SQL就没有批量这个概念……


你所说的批量提交,是不是在一个SqlCommand的Text的属性以文本的方式写入一个包含一万条insert的字符串,然后再execute? --------------------编程问答-------------------- 之前做的就是一次一次的insert,每次都要连接数据库插入,非常耗时。
现在呢,我把存储excels数据的datatable,一行一行的加入到返回oracle中数据表的ds中,最后再update,不知道这样做在本质上有没有性能的提升? --------------------编程问答-------------------- 所谓的优化是保持这一万次的sqlconnection,大家都知道connection是非常宝贵的资源,所以你的做大批量的操作的时候优化在这里。
但本质上,是做了一万次操作。 --------------------编程问答--------------------
引用 11 楼 nice_fish 的回复:
所谓的优化是保持这一万次的sqlconnection,大家都知道connection是非常宝贵的资源,所以你的做大批量的操作的时候优化在这里。
但本质上,是做了一万次操作。


你的意思是说,批量插入,就是在一个Connection的前提下,insert一万次? --------------------编程问答-------------------- 所谓的批量是你自己看到的表象,而实际上还是一条一条的插入,只是有的数据库已经做好了事务,不用你去管。 --------------------编程问答--------------------
引用 12 楼 sundacheng1989 的回复:
引用 11 楼 nice_fish 的回复:所谓的优化是保持这一万次的sqlconnection,大家都知道connection是非常宝贵的资源,所以你的做大批量的操作的时候优化在这里。
但本质上,是做了一万次操作。

你的意思是说,批量插入,就是在一个Connection的前提下,insert一万次?


是的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,