把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
这里也许有你要的答案。看里面的代码。 --------------------编程问答--------------------
去研究一下 --------------------编程问答-------------------- 我是想把excel中的数据插入进oracle数据表中,现在我已经把excel中的数据读入到了datatable中了,就是想批量的把datatable中的数据插入的对应的oracle数据表中。。。 --------------------编程问答-------------------- 可以试试SqlBulkCopy --------------------编程问答-------------------- oracle11g的话应该有OracleBulkCopy --------------------编程问答--------------------
标准SQL就没有批量这个概念,本质上都是一条条的做。当然你可以使用存储过程或者事务,但是本质还是要一条条的做。 --------------------编程问答--------------------
那有一万条数据的话,就要有一万条insert语句吗?
ADO中有没有相应的优化的方法呢? --------------------编程问答--------------------
ADO再怎么优化也是枉然啊,这需要数据库支持。数据库可以支持批量提交,但其实也是1万次insert --------------------编程问答--------------------
你所说的批量提交,是不是在一个SqlCommand的Text的属性以文本的方式写入一个包含一万条insert的字符串,然后再execute? --------------------编程问答-------------------- 之前做的就是一次一次的insert,每次都要连接数据库插入,非常耗时。
现在呢,我把存储excels数据的datatable,一行一行的加入到返回oracle中数据表的ds中,最后再update,不知道这样做在本质上有没有性能的提升? --------------------编程问答-------------------- 所谓的优化是保持这一万次的sqlconnection,大家都知道connection是非常宝贵的资源,所以你的做大批量的操作的时候优化在这里。
但本质上,是做了一万次操作。 --------------------编程问答--------------------
你的意思是说,批量插入,就是在一个Connection的前提下,insert一万次? --------------------编程问答-------------------- 所谓的批量是你自己看到的表象,而实际上还是一条一条的插入,只是有的数据库已经做好了事务,不用你去管。 --------------------编程问答--------------------
是的
补充:.NET技术 , C#