社区
C#
帖子详情
.net ,oracle 如何批量插入数据效率更高?
风沙不去驼铃声
2009-02-18 12:04:58
我有一些数据,来源于文件.
.net读取文件中的数据,数据的条数会有上百条,但是不固定.
如果循环使用 insert 语句添加到oracle数据库,速度会很满.
请教各位高手,给个方法解决.
我是.net,oracle 新手,给断调用过程的代码,将感激不尽.多谢各位.
...全文
552
10
打赏
收藏
.net ,oracle 如何批量插入数据效率更高?
我有一些数据,来源于文件. .net读取文件中的数据,数据的条数会有上百条,但是不固定. 如果循环使用 insert 语句添加到oracle数据库,速度会很满. 请教各位高手,给个方法解决. 我是.net,oracle 新手,给断调用过程的代码,将感激不尽.多谢各位.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cppfaq
2009-02-18
打赏
举报
回复
其实楼主可以直接只用SqlBulkInsert来导数据
如果必须用.net code来导入的话,可以参考
http://blog.csdn.net/axman/archive/2008/03/20/2200840.aspx
cppfaq
2009-02-18
打赏
举报
回复
建立一个DataTable,然后使用OracleDataAdapter.Update(dt)
不过如果数据只有几百条的话,效率应该不是啥问题吧
liucuiqiang
2009-02-18
打赏
举报
回复
一条一条更新也可以,只要这个链接一直连着,不要插入一条就重新开链接,速度应该不成问题
风沙不去驼铃声
2009-02-18
打赏
举报
回复
忘了一点. 数据来源是个 xml文件
冷月孤峰
2009-02-18
打赏
举报
回复
用4楼的方法
oracle 使用OracleDataAdapter.Update(dt)
sql 使用SqlDataAdapter.Update(dt)
wolf1118baby
2009-02-18
打赏
举报
回复
写存储过程
lovehongyun
2009-02-18
打赏
举报
回复
http://topic.csdn.net/u/20090217/15/046d1a4a-65db-4eaf-9e00-e6c96071e169.html
看我8楼的回复.
j45kp
2009-02-18
打赏
举报
回复
/// <summary>
/// Excel 导入到数据库
/// </summary>
/// <param name="excelFile"></param>
/// <param name="sheetName"></param>
/// <param name="tableName"></param>
/// <param name="connectionString"></param>
public static void TransferData(string excelFile, string sheetName, string tableName, string connectionString)
{
DataSet ds = new DataSet();
try
{
//获取全部数据
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = string.Format("select * from [{0}$]", sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
//如果目标表不存在则创建
string strSql = string.Format("if object_id('{0}') is null create table {0}(", tableName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns)
{
strSql += string.Format("[{0}] varchar(255),", c.ColumnName);
}
strSql = strSql.Trim(',') + ")";
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString))
{
sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();
}
//用bcp导入数据
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
{
bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = sheetName;//目标表
bcp.WriteToServer(ds.Tables[0]);
}
}
catch (Exception ex)
{
throw ex;
}
}
private static void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e)
{
//Response.Write("拷贝完成");//此事件处理函数是在批量导入完成以后进行的。
}
lovehongyun
2009-02-18
打赏
举报
回复
[Quote=引用 3 楼 SealedLove 的回复:]
你可以参考下面的文章:
使用SqlBulkCopy类加载其他源数据到SQL表
http://www.cnblogs.com/SealedLove/archive/2008/12/19/1358186.html
[/Quote]
只能应用在sql server上
oracle 使用OracleDataAdapter.Update(dt)插入数据就行了.
SealedLove
2009-02-18
打赏
举报
回复
你可以参考下面的文章:
使用SqlBulkCopy类加载其他源数据到SQL表
http://www.cnblogs.com/SealedLove/archive/2008/12/19/1358186.html
ado
.net
mysql
批量插入
_ado
.net
批量更新
数据
库
Rafy 框架 - 大批量导入实体某些场景下,开发者希望能够大批量地把实体的
数据
导入到
数据
库中。虽然使用实体仓库保存实体列表非常方便,但是其内部实现机制是一条一条的保存到
数据
库,当实体的个数较多时,
效率
就会很低。所以 Rafy 设计了批量导入插件程序,其内部使用 ADO
.NET
及 ODP
.NET
中的批量导入机制来把大量
数据
一次...文章文艺小青年2017-11-14744浏览量Rafy 框架 ...
MySQL
批量插入
数据
,一次插入多少行
数据
效率
最高?
一、前言 我们在操作大型
数据
表或者日志文件的时候经常会需要写入
数据
到
数据
库,那么最合适的方案就是
数据
库的
批量插入
。只是我们在执行批量操作的时候,一次插入多少
数据
才合适呢?假如需要插入的
数据
有百万条,那么一次
批量插入
多少条的时候,
效率
会高一些呢?这里博主和大家一起探讨下这个问题,应用环境为
批量插入
数据
到临时表。 二、
批量插入
前准备 博主本地原本是循环查出来的
数据
,然后每1000条插入一次,直至完成插入操作。但是为什么要设置1000条呢,实不相瞒,这是因为项目里的其他
批量插入
都是一次插1000条。。汗,博
大
数据
写入到
Oracle
数据
库(
批量插入
数据
)
大
数据
批量写入到
Oracle
数据
库,对比:原生写法,EF写法,sqlsugar写法。
Oracle
操作批量入库 执行
效率
不管三七二十一 /** * Created by Administrator on 2019/1/12. * 描述: 批量入库的持久化方法实现类 * * @author Young * @create 2019-01-12 20:06 */ @Repository public class BaseDaoImpl<T, ID extends Seria...
Oracle
快速批量导入
数据
Oracle
快速批量导入
数据
要求是从SQLServer中读取
数据
然后存储到
Oracle
中,使用了
Oracle
的类库:Imports
Oracle
.ManagedDataAccess.dll 前期扒了一个前辈的C#代码,小伙伴们可以去观摩学习:https://blog.csdn
.net
/u013452472/article/details/71108179 本次实现是通过VB实现 Public S...
C#
110,535
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章