社区
C#
帖子详情
.net ,oracle 如何批量插入数据效率更高?
风沙不去驼铃声
2009-02-18 12:04:58
我有一些数据,来源于文件.
.net读取文件中的数据,数据的条数会有上百条,但是不固定.
如果循环使用 insert 语句添加到oracle数据库,速度会很满.
请教各位高手,给个方法解决.
我是.net,oracle 新手,给断调用过程的代码,将感激不尽.多谢各位.
...全文
602
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
Oracle
.NET
数据
库示例项目教程
本文是
Oracle
.NET
数据
库示例项目教程。介绍了dotnet - db - samples项目,涵盖多种
数据
库操作场景。说明了项目快速启动的环境准备、克隆项目、运行示例等步骤,给出示例代码。还提及应用案例、最佳实践,以及与之结合的典型生态项目,助开发者构建跨平台应用。
解决Dapper与
Oracle
数据
库集成的5个实战方案
本文介绍了5个解决Dapper与
Oracle
数据
库集成问题的实战方案,涵盖类型映射冲突、批量操作优化、事务管理、性能监控及常见错误处理。通过自定义类型处理器、数组绑定技术、分布式事务控制等方法,帮助开发者提高
数据
访问
效率
并规避兼容性陷阱。
C#调用
Oracle
存储过程传递表变量完整实践指南
本文详细讲解C#通过ODP
.NET
向
Oracle
存储过程传递表变量的完整实现,涵盖用户自定义类型(UDT)的设计、PL/SQL与C# POCO类的映射、参数传递机制及批量
数据
处理的最佳实践。重点包括ODP
.NET
驱动选择、I
Oracle
CustomType接口实现、性能优化与异常处理,适用于高并发场景下的高效
数据
库交互。
Oracle
Developer Tools for Visual Studio 2019全面介绍
本文全面介绍了
Oracle
Developer Tools for Visual Studio 2019,包括其功能、组件、安装配置、使用方法等。详细剖析了
Oracle
数据
访问组件,介绍了对象浏览器与视觉设计工具、代码生成功能、集成调试器等。还阐述了对
Oracle
数据
库新版本的支持、扩展包安装更新,以及性能优化和社区支持等内容。
故障处理:偶遇
Oracle
备份与还原的未知重大BUG
本文介绍了如何使用MudTools.OfficeInterop.Word库在
.NET
环境中自动化生成和排版Word文档,支持合同条款生成、表格插入、目录创建等功能,提升办公自动化
效率
。
C#
111,132
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章