业务场景:客户需要在Cloud中获取第三方系统的数据,但是第三方系统的数据库是oracle,这是就需要连接oracle数据库获取数据了。

需要引用Oracle.ManagedDataAccess.dll这个类库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Metadata.EntityElement;
using System.Text.RegularExpressions;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Metadata;
using System.Data;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.Cache;
//using System.Data.OracleClient;
using Oracle.ManagedDataAccess.Client;
using Kingdee.BOS.WebApi.Client;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Kingdee.BOS.Orm.DataEntity;

namespace GetDataPlugIn
{
    public class GetData : AbstractBillPlugIn
    {
        K3CloudApiClient client = new K3CloudApiClient("http://win-bu6omsa7a39/K3Cloud/");
        public override void ButtonClick(ButtonClickEventArgs e)
        {
            base.ButtonClick(e);
            if (e.Key.ToUpperInvariant() == "F_DEV_BUTTON")

{

OracleConnection conn11 = null;
                conn11 = OpenConn();
                var cmd11 = conn11.CreateCommand();
                string Sql;
                Sql = "select * from EAS_T_Voucher ";
                cmd11.CommandText += Sql;
                cmd11.CommandType = CommandType.Text;
                using (OracleDataReader rdr11 = cmd11.ExecuteReader())
                {
                    DataTable dt11 = new DataTable();
                    dt11.Load(rdr11);
                    int RowCount11;
                    RowCount11 = dt11.Rows.Count;
                    for (int i = 0; RowCount11 > i; i++)
                    {
                        OracleConnection conn = null;
                        conn = OpenConn();
                        var cmd = conn.CreateCommand();
                        String VoucherId = dt11.Rows[i]["fid"].ToString();
                        String seleSql = "select * from EAS_T_VoucherEntry where 凭证ID='" + VoucherId + "'";
                        cmd.CommandText += seleSql;
                        cmd.CommandType = CommandType.Text;
                        using (OracleDataReader rdr = cmd.ExecuteReader())
                        {
                            DataTable dt = new DataTable();
                            dt.Load(rdr);
                            int RowCount;
                            RowCount = dt.Rows.Count;
                            int EntryRow = 0;
                            for (int j = 0; j < RowCount; j++)
                            {
                                EntryRow = this.View.Model.GetEntryRowCount("FEntity");

String LoanType = dt.Rows[j]["方向"].ToString();
                                Decimal FLocalAmount = Decimal.Parse(dt.Rows[j]["FLocalAmount"].ToString());

String DESCR = dt.Rows[j]["FDescription"].ToString();
                                String AccountItem = dt.Rows[j]["会计科目"].ToString();
                                String StrAssAct = dt.Rows[j]["核算项目"].ToString();
                                String Account = dt.Rows[j]["科目编码"].ToString();
                                if (!string.IsNullOrWhiteSpace(StrAssAct))
                                {
                                    DateTime FBizDate = DateTime.Parse(dt.Rows[j]["业务日期"].ToString());
                                    Decimal ItemAmount = Decimal.Parse(dt.Rows[j]["核算行金额"].ToString());

String EASAssNum = null;
                                    String cus = dt.Rows[j]["客户"].ToString();
                                    String Sup = dt.Rows[j]["供应商"].ToString();
                                    String por = dt.Rows[j]["其他"].ToString();
                                    String bank = dt.Rows[j]["银行账户"].ToString();
                                    String admin = dt.Rows[j]["行政组织"].ToString();
                                    String comp = dt.Rows[j]["公司"].ToString();
                                    String cost = dt.Rows[j]["成本中心"].ToString();
                                    String person = dt.Rows[j]["职员"].ToString();
                                    String StrAssAct1 = dt.Rows[j]["FGeneralAssActType1ID"].ToString();
                                    String StrAssAct2 = dt.Rows[j]["FGeneralAssActType2ID"].ToString();
                                    String StrAssAct3 = dt.Rows[j]["FGeneralAssActType3ID"].ToString();
                                    String StrAssAct4 = dt.Rows[j]["FGeneralAssActType4ID"].ToString();
                                    String StrAssAct5 = dt.Rows[j]["FGeneralAssActType5ID"].ToString();
                                    String StrAssAct6 = dt.Rows[j]["FGeneralAssActType6ID"].ToString();
                                    String StrAssAct7 = dt.Rows[j]["FGeneralAssActType7ID"].ToString();
                                    String StrAssAct8 = dt.Rows[j]["FGeneralAssActType8ID"].ToString();
                                    String StrAssAct9 = dt.Rows[j]["FGeneralAssActType9ID"].ToString();
                                    String StrAssAct10 = dt.Rows[j]["FGeneralAssActType10ID"].ToString();
                                    String entryId = dt.Rows[j]["分录ID"].ToString();
                                    if (StrAssAct8 != null)
                                    {
                                        String haha = StrAssAct8;
                                    }

if (string.IsNullOrWhiteSpace(cus)
                                        && string.IsNullOrWhiteSpace(por)
                                        && string.IsNullOrWhiteSpace(bank)
                                        && string.IsNullOrWhiteSpace(admin)
                                        && string.IsNullOrWhiteSpace(comp)
                                        && string.IsNullOrWhiteSpace(cost)
                                        && string.IsNullOrWhiteSpace(person)
                                        )
                                    {

String AsstActType = "select fnumber from T_BD_GeneralAsstActType ";
                                        if (!string.IsNullOrWhiteSpace(StrAssAct1))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct1 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct2)
)
                                        {
                                            AsstActType += "where fid = '" + StrAssAct2 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct3))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct3 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct4))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct4 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct5))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct5 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct6))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct6 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct7))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct7 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct8))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct8 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct9))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct9 + "'";
                                        }
                                        if (!string.IsNullOrWhiteSpace(StrAssAct10))
                                        {
                                            AsstActType += "where fid = '" + StrAssAct10 + "'";
                                        }
                                        OracleConnection conn2 = null;
                                        conn2 = OpenConn();
                                        var cmd111 = conn2.CreateCommand();
                                        cmd111.CommandText += AsstActType;
                                        cmd111.CommandType = CommandType.Text;
                                        using (OracleDataReader rdr1 = cmd111.ExecuteReader())
                                        {
                                            DataTable zjy = new DataTable();
                                            zjy.Load(rdr1);
                                            int zjyCount;
                                            zjyCount = zjy.Rows.Count;
                                            for (int g = 0; g < zjyCount; g++)
                                            {
                                                EntryRow = this.View.Model.GetEntryRowCount("FEntity");
                                                EASAssNum = zjy.Rows[g]["Fnumber"].ToString();

this.View.Model.SetValue("F_DEV_LoanType", LoanType, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_FLocalAmount", FLocalAmount, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_ItemAmount", ItemAmount, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_AccountItem", AccountItem, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_Account", Account, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_Voucherid", dt11.Rows[i]["fid"].ToString(), EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_EASACCNO", dt11.Rows[i]["凭证号"].ToString(), EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_EASAssNum", EASAssNum, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_StrAssAct", StrAssAct, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_Date", FBizDate, EntryRow - 1);
                                                this.View.Model.SetValue("F_DEV_FEXPLANATION", DESCR, EntryRow - 1);
                                                this.View.Model.CreateNewEntryRow("FEntity");

}
                                            conn2.Close();

}
                                    }
                                    else
                                    {
                                        EntryRow = this.View.Model.GetEntryRowCount("FEntity");
                                        EASAssNum = cus + Sup + por + bank + admin + comp + cost + person;
                                        this.View.Model.SetValue("F_DEV_StrAssAct", StrAssAct, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_EASAssNum", EASAssNum, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_LoanType", LoanType, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_FLocalAmount", FLocalAmount, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_ItemAmount", ItemAmount, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_AccountItem", AccountItem, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_Account", Account, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_Voucherid", dt11.Rows[i]["fid"].ToString(), EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_EASACCNO", dt11.Rows[i]["凭证号"].ToString(), EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_Date", FBizDate, EntryRow - 1);
                                        this.View.Model.SetValue("F_DEV_FEXPLANATION", DESCR, EntryRow - 1);
                                        this.View.Model.CreateNewEntryRow("FEntity");

}

}
                                else
                                {
                                    EntryRow = this.View.Model.GetEntryRowCount("FEntity");
                                    this.View.Model.SetValue("F_DEV_StrAssAct", StrAssAct, EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_LoanType", LoanType, EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_FLocalAmount", FLocalAmount, EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_AccountItem", AccountItem, EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_Account", Account, EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_Voucherid", dt11.Rows[i]["fid"].ToString(), EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_EASACCNO", dt11.Rows[i]["凭证号"].ToString(), EntryRow - 1);
                                    this.View.Model.SetValue("F_DEV_FEXPLANATION", DESCR, EntryRow - 1);
                                    this.View.Model.CreateNewEntryRow("FEntity");

}

}

}
                        conn.Close();

}

}
                conn11.Close();
            }
        }

static OracleConnection OpenConn()
        {
            try
            {
                OracleConnection conn = new OracleConnection();
                conn.ConnectionString = "Data Source=  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.33)(PORT = 1521))" +
                "(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =  test)));User Id=hrpdb;Password=password;";
                conn.Open();
                return conn;
            }
            catch (Exception)
            {

//MessageBox.Show(ex.Message);
            }
            return null;

}
    }
}

Cloud插件,链接oracle数据库的更多相关文章

  1. 历尽磨难之PL/SQL链接Oracle数据库

    说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...

  2. 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

    用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...

  3. 有关.NET链接Oracle数据库,使用连接池pooling=true时问题

    .net链接oracle数据库时,当链接字符串中pooling=true时,视图结构变更时程序报错问题,还请高手指教 现象: 链接字符串: 注意:这里pooling=true: 测试视图: 执行的SQ ...

  4. Oracle 远程链接oracle数据库服务器的配置

    远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...

  5. 链接oracle数据库 生成表对应的javabean

    package com.databi.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...

  6. Java JDBC链接Oracle数据库

    package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...

  7. python链接oracle数据库以及数据库的增删改查实例

    初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...

  8. Python链接Oracle数据库

    说明:以下所需安装的所有软件版本必须跟系统一致,即系统是64位,软件就得是64位,否则会出现各种链接报错的情况. 现以64位系统,python 3.6.5  64位为例: (一)安装cx_Oracle ...

  9. ABP框架EF6链接Oracle数据库手动迁移

    环境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具访问) 一.Abp项目的下载以及运行 1.创建ab ...

随机推荐

  1. [redis读书笔记] 第二部分 单机数据库 数据库实现

    一 数据库基本实现/命令下发的实现 redis.c里,大家能看到redisCommandTable[] 的实现,列出了支持的所有命令.大部分的入参为redisClient *c,当一条REDIS命令下 ...

  2. MySQL中大数据表增加字段,增加索引实现

    MySQL中大数据表增加字段,通过增加索引实现 普通的添加字段sql ALTER TABLE `table_name` ADD COLUMN `num` int(10) NOT NULL DEFAUL ...

  3. Redis入门(介绍、搭建)——Windows、Centos环境

    一.介绍 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cac ...

  4. C语言:字符串拷贝(截取)、查找

    C语言:字符串拷贝(截取).查找 很惭愧,学了这么久别的语言,一直没有好好学C和C++,所以现在开始认真C/C++的一些特性和比较,这里记录下C语言拷贝和截取的一些方式,由于系统库带的函数不方便,所以 ...

  5. 面型对象和UML类图

    面向对象 why? 1.程序执行:顺序,判断,循环,----结构化 2.面向对象----数据结构化 3.面向计算机,结构化的才是最简单的 4.变成应该 简单&抽象 一个基本的类 class P ...

  6. css常用样式对文本的处理演练

    CSS文本属性可定义文本的外观,这是毫无疑问的,其次css可以通过以下属性改变文字的排版,比方说letter-spacing实现字符间距text-indent: 2em;完成首行缩进2字符word-s ...

  7. Android中自定义xml文件给Spinner下拉框赋值并获取下拉选中的值

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  8. Windows应急响应和系统加固(2)——Windows应急响应的命令使用和安全检查分析

    Windows应急响应的命令使用和安全检查分析 1.获取IP地址: ·ipconfig /all,获取Windows主机IP地址信息: ·ipconfig /release,释放网络IP位置: ·ip ...

  9. C#中StreamWriter类使用总结

    C#中StreamWriter类使用总结 1.使用的命名空间是:System.IO; 2.用来将字符串写入文件. 常用属性:   AutoFlush:获取或设置一个值,该值指示是否 System.IO ...

  10. .Net框架的模块代码生成器--其二(dotnet tool)

    以下是个人工作场景,继上篇后,还剩下第3步骤没有解决 3.(这个可能我们公司才有)每个模型还要在每一层那里创建一个文件,这个模型的增删改查逻辑就在这里写 这个我是自己写一个.Net Core命令行工具 ...