社区
C#
帖子详情
.net ,oracle 如何批量插入数据效率更高?
风沙不去驼铃声
2009-02-18 12:04:58
我有一些数据,来源于文件.
.net读取文件中的数据,数据的条数会有上百条,但是不固定.
如果循环使用 insert 语句添加到oracle数据库,速度会很满.
请教各位高手,给个方法解决.
我是.net,oracle 新手,给断调用过程的代码,将感激不尽.多谢各位.
...全文
568
10
打赏
收藏
.net ,oracle 如何批量插入数据效率更高?
我有一些数据,来源于文件. .net读取文件中的数据,数据的条数会有上百条,但是不固定. 如果循环使用 insert 语句添加到oracle数据库,速度会很满. 请教各位高手,给个方法解决. 我是.net,oracle 新手,给断调用过程的代码,将感激不尽.多谢各位.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
data provider ODP
.NET
对于大规模
数据
处理,ODP
.NET
支持
批量插入
和更新,进一步提升了性能。 总之,ODP
.NET
是
.NET
开发者在
Oracle
数据
库开发中的强大工具,它提供了丰富的功能、高效的性能和良好的兼容性。通过熟练掌握ODP
.NET
,开发者...
c#批量导入excel
数据
到
oracle
数据
库.rar
5. **
批量插入
数据
**:在C#中构建SQL的INSERT语句,可以使用参数化查询避免SQL注入风险。由于大量插入,建议使用
Oracle
的BULK COLLECT INTO语句,以提高性能。 6. **执行插入操作**:通过
Oracle
Command对象执行SQL...
.Net
连接
Oracle
在
.NET
开发环境中,
Oracle
数据
库是常用的后端存储系统之一,为...这只是一个基础指南,实际应用中还可能涉及更多复杂操作,如存储过程调用、参数化查询、
批量插入
等。确保始终遵循最佳实践,确保代码的健壮性和安全性。
.NET
数据
库通用接口SQLSERVER和
ORACLE
在
.NET
开发环境中,为了实现对不同
数据
库系统的统一访问,开发者经常使用抽象层...在实际项目中,OraHelper可以根据需求进一步扩展,比如添加对其他
数据
库的支持,或者提供
更高
级的特性,如存储过程调用、批量操作等。
Apress.Pro.ODP
.NET
.for.
Oracle
.Database.11g.Mar.2010.rar
《Apress.Pro.ODP
.NET
.for.
Oracle
.Database.11g》是一本专注于使用ODP
.NET
(
Oracle
Data Provider for
.NET
)与
Oracle
Database 11g进行
数据
访问和管理的专业书籍。ODP
.NET
是
Oracle
公司为
.NET
Framework开发的一款...
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章