.net 调用Oracle.Data.Access 组件提供的用于批量操作的方法
1、添加引用
using Oracle.DataAccess.Client;
using System.Configuration;
2、代码 增加方法
//DestinationTableName 表名
//connectionString 连接
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnectionString"].ConnectionString;
config配置文件中
<add name="DefaultConnectionString" connectionString="Data Source=库名;User ID=用户名;Password=密码;" providerName="System.Data.OracleClient"/>
//dataTable 数据
public void Insert(string DestinationTableName, string connectionString, DataTable dataTable)
{
if (dataTable.Rows.Count == 0)
{
return;
}
//string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnectionString"].ConnectionString;
string strMainTableName = "表名";
// 锁表防止并发产生重复数据 删除数据表已经存在的同一批数据
string sSQLLock = "lock table " + strMainTableName + " in share row exclusive mode";
string strDeleSqlTemp = string.Format("delete from " + strMainTableName + " where ny='{0}' and dz in ({1})", strDate, strAdd);
//连接
using (OracleConnection conn = new OracleConnection(connectionString))
{
int recordCount = dtTemp.Rows.Count;//数据条数
conn.Open();//打开连接
OracleTransaction trans = conn.BeginTransaction();//连接打开事务
try
{
//锁表
OracleCommand cmdLock = new OracleCommand(sSQLLock, conn);
cmdLock.ExecuteNonQuery();
//删除原有数据
OracleCommand cmdDele = new OracleCommand(strDeleSqlTemp, conn);
cmdDele.ExecuteNonQuery();
//获取目标表表结构
DataTable DestDataTable = GetOracleTableSchema(strMainTableName);
//获取insert 语句
string strSql = common.GenerateInserSql(strMainTableName, dtTemp, "");
OracleCommand cmd = new OracleCommand(strSql, conn);
//参数赋值
common.GenerateParameter(DestDataTable, dtTemp, cmd);
cmd.Transaction = trans;
cmd.ArrayBindCount = recordCount;
cmd.BindByName = true;
cmd.ExecuteNonQuery();
trans.Commit(); //执行
}
catch (Exception ex)
{
trans.Rollback();
strRetVal = common.CreateXml("0007", "错误信息:" + ex.Message);
}
finally
{
conn.Close();
}
}
}
获取表列的方法GetOracleTableSchema,参数赋值方法GenerateInserSql在博客中详细说明http://www.cnblogs.com/xuxin-1989/p/4157697.html
.net 调用Oracle.Data.Access 组件提供的用于批量操作的方法的更多相关文章
- .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法—获取数据库表结构方法和跟参数赋值方法
1./// <summary> /// 获取当前目标表结构 /// </summary> /// <param name="tableName"> ...
- Windows 的 Oracle Data Access Components (ODAC)
下载 x64bit https://www.oracle.com/technetwork/cn/database/windows/downloads/index.html 适用于 Windows 的 ...
- 使用 Oracle Data Access Components连接oracel
使用微软自带的oracle连接类,在framework4.0中被标识为弃用,强行用它开发了Winform程序,发布放到XP上提示: Error System.Data.OracleClient req ...
- Oracle数据访问组件ODAC的安装方法
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- Oracle数据访问组件ODAC的安装方法:
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- .NET安装和配置Oracle数据访问组件(ODAC)
Many ASP.NET applications access Oracle database for the data source. Oracle supports the .NET with ...
- WIN7系统 64位出现 Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC).
WIN7系统 64位出现 Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC).请安装 Microsoft Data Acces ...
- Spring Data Jpa Specification 调用Oracle 函数/方法
开发框架用的Jpa,数据库是 Oracle. 在开发中难免会遇到需要数据库字段是字符串格式,但是又需要对其进行范围查询(数据库设计问题,后续应避免).那么问题来了, Jpa Specification ...
- 转 使用隐含Trace参数诊断Oracle Data Pump故障
http://blog.itpub.net/17203031/viewspace-772718/ Data Pump数据泵是Oracle从10g开始推出的,用于取代传统exp/imp工具的数据备份还原 ...
随机推荐
- Sql Server添加用户
1.sa用户登陆之后,在安全性中新建登录名 2.添加登录名,下面的默认数据库选择该用户可访问的默认数据库 3.服务器角色中选择public 4.用户映射中选择该用户可访问的数据库,数据库角色一般选择p ...
- Bootstrap3 入门实战
因为公司选择了使用BootStrap3作为项目的前台展示框架,所以花了半天时间来学习Bootstrap, 如果你是第一次听说,或者说以前听说过,但没有使用过这个框架的话,希望这篇入门实战能够让你快速掌 ...
- php打印xml格式数据
在你要输出的xml前边加 header("Content-type:text/xml;charset=utf-8"); 这个上边不要有任何输出 打印用echo 别用va ...
- IIS自定义404错误页显示“系统找不到指定的文件”解决方法
在IIS站点属性里面设置了自定义的404错误页面为一个文件之后,有时一直不生效,总是提示这样一句话:“系统找不到指定的文件”. 其实这种错误也只是在某些网站程序中出现,其实解决办法很简单.这是由于II ...
- NET Core依赖注入解读&使用Autofac替代实现
NET Core依赖注入解读&使用Autofac替代实现 标签: 依赖注入 Autofac ASPNETCore ASP.NET Core依赖注入解读&使用Autofac替代实现 1. ...
- GO语言练习ONE
- angularjs中{{}} 加载出现闪烁问题
在head标签中加入 [ng-cloak] { display: none !important; } 在页面的body标签上添加 ng-cloak 可以解决页面上先后加载闪烁问题
- mysql安装图解 mysql图文安装教程(详细说明)-[转]
很多朋友刚开始接触mysql数据库服务器,下面是网友整理的一篇mysql的安装教程,步骤明细也有详细的说明. MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版 ...
- 手动替换GCC版本
当我们的系统里面会有2个以上版本的gcc时,系统会缺省的默认一个gcc版本,当然我们可以更改系统的默认配置,来降低gcc.g++的版本以满足不同的需求. 1.查看GCC的版本信息 $ls /usr/b ...
- android应用开发之Window,View和WindowManager .
ViewManager vm = a.getWindowManager(); vm.add(view,l); window :一个抽象的窗口基类,控制顶层窗口的外观和行为.作为顶层窗口,可控制窗口背 ...