Tag:开源 , 源码 , 控件 , 控件开发 , 皮肤 , Skin , MVC , WCF , Remoting , AJAX , JQuery , Flex , Silverlight , SQL Server , 设计模式 , 框架 , 正则 , Web服务 , 数据库 , PetShop , WordPress , SOA应用中WebService层的离线对接C#实现

 
您的位置: >> 首页 >> .Net博文 >> .net中利用oracle自带数据访问组件(Oracle.DataAccess.dll)

.net中利用oracle自带数据访问组件(Oracle.DataAccess.dll)

2010-07-26  来自:CSDN  字体大小:【  
  • 摘要:.net中利用oracle产品自带的数据访问组件(Oracle.DataAccess.dll)提升批量更新操作的执行效率

 

//动态链接库路径
$Oracle安装路径$\bin\Oracle.DataAccess.dll
//命名空间引用
using Oracle.DataAccess.Client;
//编码过程概略
int rowsCount = 10;//此处假定需要对10条记录进行删除操作
Oracle.DataAccess.Client.OracleConnection connection =
new Oracle.DataAccess.Client.OracleConnection("connection string here");
connection.Open();
Oracle.DataAccess.Client.OracleTransaction trans
=
connection.BeginTransaction();
Oracle.DataAccess.Client.OracleCommand cmd
=
new Oracle.DataAccess.Client.OracleCommand(
"delete from sample where id =:V_ID");
Oracle.DataAccess.Client.OracleParameter[] parameters
=
new Oracle.DataAccess.Client.OracleParameter[1];
//此处省略对parameters[0]的初始化和类型声明操作
cmd.Connection = connection;
cmd.ArrayBindCount
= rowsCount;
for(int i = 0;i < parameters.Length; i++)
{
//此处可完成对涉及的所有参数进行批量赋值
parms[i].Value = new object[]{1,2,3,4,5,6,7,8,9,10};
}

foreach(Oracle.DataAccess.Client.OracleParameter param in parameters)
{
cmd.Parameters.Add(param);
}
cmd.ExecuteNonQuery();
trans.Commit();
connection.Close();
//性能优化说明


此种方式利用同一参数的批量赋值模式,充分利用了数据库产品提供的高效参数缓存机制,从而减少了语句解析时间(使用System.Data.OracleClient模式,每次执行都需要重新解析携带相同参数的查询语句),最终在大批量数据更新时表现出更好的执行效率和执行性能.


 

作者:sharpnessdotnet
该文章已有条评论 我要发表评论