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 组件提供的用于批量操作的方法的更多相关文章

  1. .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法—获取数据库表结构方法和跟参数赋值方法

    1./// <summary> /// 获取当前目标表结构 /// </summary> /// <param name="tableName"> ...

  2. Windows 的 Oracle Data Access Components (ODAC)

     下载 x64bit https://www.oracle.com/technetwork/cn/database/windows/downloads/index.html 适用于 Windows 的 ...

  3. 使用 Oracle Data Access Components连接oracel

    使用微软自带的oracle连接类,在framework4.0中被标识为弃用,强行用它开发了Winform程序,发布放到XP上提示: Error System.Data.OracleClient req ...

  4. Oracle数据访问组件ODAC的安装方法

    Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...

  5. Oracle数据访问组件ODAC的安装方法:

    Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...

  6. .NET安装和配置Oracle数据访问组件(ODAC)

    Many ASP.NET applications access Oracle database for the data source. Oracle supports the .NET with ...

  7. WIN7系统 64位出现 Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC).

    WIN7系统 64位出现  Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC).请安装 Microsoft Data Acces ...

  8. Spring Data Jpa Specification 调用Oracle 函数/方法

    开发框架用的Jpa,数据库是 Oracle. 在开发中难免会遇到需要数据库字段是字符串格式,但是又需要对其进行范围查询(数据库设计问题,后续应避免).那么问题来了, Jpa Specification ...

  9. 转 使用隐含Trace参数诊断Oracle Data Pump故障

    http://blog.itpub.net/17203031/viewspace-772718/ Data Pump数据泵是Oracle从10g开始推出的,用于取代传统exp/imp工具的数据备份还原 ...

随机推荐

  1. 初学Java ssh之Spring 第三篇

    在这篇中,我学习了依赖注入的两种方式:设值注入和构造注入. 在我们以前的思维中,如果调用一个类时,我们都需要将其手动实例化,当我们创建被调用的工作不需要我们完成时,这就是控制反转,当这个将被调用的实例 ...

  2. C#--比较

    类型比较: 在比较对象时,常常需要知道它们的类型,这样才能确定是否可以进行值的比较. 方法一. 可以将GetType()方法和typeof()运算符一起使用,就可以确定对象的类型. 例子: int i ...

  3. 读书笔记_Effective_C++_条款十七:以独立语句将new产生的对象置入智能指针

    int get_int(); void f(shared_ptr<int> a, int); //下面调用 f(new int(3), get_int());//如果是类而不是int就可以 ...

  4. flash里面调用js

    在flash里面直接调用js 用这个:ExternalInterface.call("test");  test是函数名

  5. Flask学习记录之Flask-WTF

    Flask-wtf时Wtforms库的flask框架扩展,能够方便的处理Web表单 一.定义一个web表单 使用flask-wtf时,每个web表单都由一个继承自flask.ext.wtf.Form的 ...

  6. 文成小盆友python-num8 面向对象中的成员,成员修饰符,特殊成员,异常处理,设计模式之单例模式

    本节主要内容: 1.面向对象中的成员 2.成员修饰符 3.特殊成员 4.异常处理 5.设计模式之单例模式 一.面向对象中的成员(类的成员) 类的成员总共可以分为3大类,每类中有不同的分支. 1.总述, ...

  7. PlayerPrefs类

    该类用于本地持久化保存与读取数据工作原理是:以键值对的形势将数据保存在文件中.该类可以保存与读取3种基本的数据类型,它们是浮点型.整型和字符串型,涉及的方法如下.SetFloat():保存浮点类型Se ...

  8. ELK 下载地址elastic

    lasticsearch 2.3.5 Elasticsearch can also be installed from our repositories using apt or yum. See R ...

  9. [置顶] css3 befor after 简单使用 制作时尚焦点图相框

    :befor.:after是CSS的伪元素,什么是伪元素呢?伪元素用于向某些选择器设置特殊效果. 我们用CSS手册可以查询到其基本的用法: E:before/E::before 设置在对象前(依据对象 ...

  10. 关于我们-EIBOA易博男装-互联网品质男装品牌-在线销售男士西服,衬衫,外套,西裤,领带|全场免运费,30天退换货保障

    关于我们 - 网站底部 | ELLE中国 | ELLE China 关于赫斯特国际集团 男人尚--专注男人时尚 关于男人尚 这些数据,你知道吗? 1.全国至少1亿男人的衬衫尺码错误: 2.57%的男人 ...