.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工具的数据备份还原 ...
随机推荐
- 如何发布Web项目到互联网
比如我们有个项目想要发布到互联网上,我们首先需要购买域名以及主机,主机的话,推荐云主机(本人推荐西部数码或者阿里云),性能好: 我们先在云主机上搭建环境,比如Mysql,Jdk,Tomcat: 然后我 ...
- 服务器是windows时tomcat无法打印所有日志配置修改
Tomcat运行仅一天磁盘空间突然就增加了很多,发现是日志文件太大了,修改tomcat的日志配置即可. 查看目录所占空间大小: ? 1 [root@XXX webapps]du -sh 清理方法: ? ...
- 作业:汽车查询--弹窗显示详情,批量删除 php做法(0521)
作业:显示以下界面: 作业要求: 1.查看详细信息,以弹窗的形式显示,使用ajax2.批量删除 一.主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- /dev/socket/vold exploit 本地提权漏洞
EXPLOIT "0 asec create ../../../../../../../../xxxxx/xx/xx/xx 1 ext4 98235792350852308254872354 ...
- DataTables自定义筛选器
/* Custom filtering function which will search data in column four between two values */ $.fn.dataTa ...
- JAVA_build_ant_FixCRLF
Description Adjusts a text file to local conventions. The set of files to be adjusted can be refined ...
- QT creator中使用opencv采集摄像头信息
之前在QT creator上成功编译了opencv,由于课题需要,需要采集摄像头的信息.故搜集了网上的一些资料,依葫芦画瓢的照着做了一下,终于简单的成功采集了信息. 打开QTcreator,新建一个w ...
- smarty 内置函数if 等判断
{if},{elseif},{else} Smarty的{if}条件判断和PHP的if 非常相似,只是增加了一些特性. 每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {else ...
- Linux watch 命令
man watch: WATCH(1) Linux User's Manual WATCH(1) NAME watch - execute a program periodically, showin ...
- Delphi 调试 通过BreakPoint
1.打个断点, 如下图 2. 在断点上,邮件,如下图 3. 弹出一个窗体 ,如下图 在 condition 中写条件就可以了. 这样就可以按你假设的条件来进行了,方便.