c# 连接oracle 及对应获取数据集

1、数据库配置xml,首先连接成功后会自动创建xml并保存到对应xml,如下

static string ConnPath = AppDomain.CurrentDomain.BaseDirectory + "ConnOrcle.xml";

声明xml名称,便于后续写入对应数据库参数

2、创建xml

/// <summary>
        /// 创建XML节点
        /// </summary>
        /// <param name="ip"></param>
        /// <param name="port"></param>
        /// <param name="sid"></param>
        /// <param name="user"></param>
        /// <param name="pwd"></param>
        public static void CreateXMLInform(string ip, string port, string sid, string user, string pwd)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
            xmlDoc.AppendChild(xmlDecl);

            XmlElement xe = xmlDoc.CreateElement("Conn");//创建一个Conn节点

            XmlElement xc1 = xmlDoc.CreateElement("ConnIP");//IP
            xc1.InnerText = ip;
            xe.AppendChild(xc1);

            XmlElement xc2 = xmlDoc.CreateElement("ConnPort");//端口
            xc2.InnerText = port;
            xe.AppendChild(xc2);

            XmlElement xc3 = xmlDoc.CreateElement("ConnSid");//服务器名称
            xc3.InnerText = sid;
            xe.AppendChild(xc3);

            XmlElement xc4 = xmlDoc.CreateElement("ConnUser");//用户名
            xc4.InnerText = user;
            xe.AppendChild(xc4);

            XmlElement xc5 = xmlDoc.CreateElement("ConnPwd");//密码
            xc5.InnerText = pwd;
            xe.AppendChild(xc5);

            xmlDoc.AppendChild(xe);
            xmlDoc.Save(ConnPath);
        }

3、声明连接类实体 ConnEntity

 private string connIP;//ip地址
        private string connPort;//端口
        private string connSid;//服务器名称
        private string connUser;//用户名
        private string connPwd;//密码

4、读取xml内容并赋值给ConnEntity

/// <summary>
        /// 读取XML内容赋值给连接
        /// </summary>
        /// <returns></returns>
        public static ConnEntityReadXML()
        {
            ConnEntity connentiy= new ConnEntity();
            if (File.Exists(ConnPath))
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(ConnPath);
                XmlNodeList list = xmlDoc.SelectSingleNode("Conn").ChildNodes;
                connentiy.ConnIP = list[0].InnerText;
                connentiy.ConnPort = list[1].InnerText;
                connentiy.ConnSid = list[2].InnerText;
                connentiy.ConnUser = list[3].InnerText;
                connentiy.ConnPwd = list[4].InnerText;
            }
            return connentiy;
        }

5、连接数据库测试

 /// <summary>
        /// 连接数据库
        /// </summary>
        /// <param name="ip">地址</param>
        /// <param name="port">端口</param>
        /// <param name="sid">服务名称</param>
        /// <param name="user">用户</param>
        /// <param name="pwd">密码</param>
        public static bool ConnectionTestDB(string ip, string port, string sid, string user, string pwd)
        {
            ConnOracle(ip, port, sid, user, pwd);
            try
            {
                //不为空 并且 是关闭或者断了的情况下,才连接
                if (Connection != null && (Connection.State == System.Data.ConnectionState.Closed || Connection.State == System.Data.ConnectionState.Broken))
                {
                    Connection.Open();
                    ReturnOwner = Select("SELECT OWNER, TABLE_NAME FROM ALL_TAB_COMMENTS ORDER BY OWNER, TABLE_NAME");
                }
                MessageBox.Show("连接成功!");
                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(+“连接失败,请检查数据库配置参数”ex.Message.ToString());
                return false;
            }
        }

6、其中调用的函数

 /// </summary>
        /// <param name="ip">地址</param>
        /// <param name="port">端口</param>
        /// <param name="sid">服务名称</param>
        /// <param name="user">用户</param>
        /// <param name="pwd">密码</param>
        /// <returns>OleDbConnection</returns>
        private static OracleConnection ConnOracle(string ip, string port, string sid, string user, string pwd)
        {
            string connStr;
            connStr = "Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = " + ip + ")(PORT = " + port + "))) (CONNECT_DATA = (SERVICE_NAME = " + sid + ")));User ID=" + user + ";Password=" + pwd + ";";
            Connection = new OracleConnection(connStr);
            return Connection;
        }

详细看源码网址及下载

c#oracle创建实体类操作资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

182基于matlab的半监督极限学习机进行聚类

基于matlab的半监督极限学习机进行聚类&#xff0c;基于流形正则化将 ELM 扩展用于半监督&#xff0c;三聚类结果可视化输出。程序已调通&#xff0c;可直接运行。 182matlab ELM 半监督学习 聚类 模式识别 (xiaohongshu.com)

「滚雪球学Java」:JDBC(章节汇总)

&#x1f3c6;本文收录于「滚雪球学Java」专栏&#xff0c;专业攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎大家关注&&收藏&#xff01;持续更新中&#xff0c;up&#xff01;up&#xff01;up&#xff01;&#xf…

SpringBoot中实现拦截器和过滤器

1.过滤器和拦截器简述 过滤器Filter和拦截器Interceptor&#xff0c; 在功能方面很类似&#xff0c; 但在具体实现方面差距还是比较大。 1.1 运行顺序不同&#xff1a;Filter →Servlet →Interceptor→Controller&#xff1b;1.2 配置方式不同&#xff1a;Filter在web.xml中…

C# Winform画图绘制圆形

一、因为绘制的圆形灯需要根据不同的状态切换颜色,所以就将圆形灯创建为用户控件 二、圆形灯用户控件 1、创建用户控件UCLight 2、设值用户控件大小(30,30)。放一个label标签,AutoSize为false(不自动调整大小),Dock为Fill(填充),textaglign为居中显示。 private Color R…

微服务架构SpringCloud(2)

热点参数限流 注&#xff1a;热点参数限流默认是对Springmvc资源无效&#xff1b; 隔离和降级 1.开启feign.sentinel.enabletrue 2.FeignClient(fallbackFactory) 3.创建一个类并实现FallbackFactory接口 4.加入依赖 <!--添加Sentienl依赖--><dependency><gro…

C语言如何正确使⽤循环嵌套?

一、问题 循环嵌套的应⽤⾮常⼴泛&#xff0c;如⽆限循环、查找循环、计数循环等&#xff0c;那么如何正确使⽤它呢&#xff1f; 二、解答 正确的循环嵌套模式是这样的&#xff1a;在⼀个循环结构当中包含另外⼀个循环结构&#xff0c;就像玩具套娃⼀样&#xff0c;⼀层套⼀层…

机器学习笔记 大语言模型是如何运作的?一、语料库和N-gram模型

一、语料库 语言模型、ChatGPT和人工智能似乎无处不在。了解大型语言模型(LLM)“背后”发生的事情将是驾驭数字世界的关键。 首先在提示中键入一个单词,然后点击提交。您可以尝试新的提示,并根据需要多次重新生成响应。 这个我们称之为“T&C”的语言模型是在一…

量子效应可以消灭熵

按照热寂论&#xff0c;宇宙最终达到热平衡&#xff0c;死气沉沉&#xff0c;此时熵最大。那么这一切就没有希望了吗&#xff1f; 我于是提出一个想法&#xff1a; 只要有量子效应&#xff0c;经过足够长时间&#xff08;期间无数次的变化&#xff09;&#xff0c;就会再次发…

店匠科技颁布 Shoplazza Awards:品牌出海迎历史性机遇,赋能品牌腾飞

在全球化的今天&#xff0c;中国品牌在全球市场的地位日益显著&#xff0c;品牌意识的提升推动了企业出海战略的全新转型。以全球电商市场发展为例&#xff0c;根据 ecommerceBD 数据&#xff0c;2023 年全球零售电子商务销售额预计 6.3 万亿美元&#xff0c;到 2026 年&#x…

Overload方法的重载

在一个类中&#xff0c;我们可以定义多个方法。但是有一系列方法&#xff0c;他们的功能相似&#xff0c;只是参数不同(参数的个数、顺序、类型不同)&#xff0c;那么在JavaOOP的语法中允许把这一系列方法定义为同名方法&#xff0c;这种方法名相同&#xff0c;但是参数不同的方…

Spring ControllerAdvice:全局异常处理与控制器增强

Spring ControllerAdvice&#xff1a;全局异常处理与控制器增强 在Spring框架中&#xff0c;ControllerAdvice是一个非常重要的注解&#xff0c;它提供了一种机制来全局地处理控制器层的异常&#xff0c;并且能够增强控制器的行为。通过使用ControllerAdvice&#xff0c;我们可…

我们距离AGI还有多远?

关于HBM那份纪要的其他反馈 上篇文章发了一篇HBM纪要小部分内容&#xff08;星球更新了另一部分&#xff09;&#xff0c;收到很多业内大佬们的反馈&#xff0c;包括颗粒计算、封装订单划分等等&#xff0c;以及是不是某通某电的一个专家。其中倒是出现一个非共识的说法&#…

【论文阅读】TensoRF: Tensorial Radiance Fields 张量辐射场

发表于ECCV2022. 论文地址&#xff1a;https://arxiv.org/abs/2203.09517 源码地址&#xff1a;https://github.com/apchenstu/TensoRF 项目地址&#xff1a;https://apchenstu.github.io/TensoRF/ 摘要 本文提出了TensoRF&#xff0c;一种建模和重建辐射场的新方法。不同于Ne…

Python字符串中%d,%.f的用法

在字符串中&#xff0c;我们经常需要改变其中的一些几个字符&#xff0c;比如 第一个d%就是epoch1&#xff0c;会随着epoch的变化而变化。同理&#xff0c;后面的也是。打印出的结果就是 其中&#xff0c;epoch迭代了3次&#xff0c;从0开始。会发现 d%&#xff0c;是整数&…

12-Java享元模式 ( Flyweight Pattern )

Java享元模式 摘要实现范例 享元模式&#xff08;Flyweight Pattern&#xff09;主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能 享元模式尝试重用现有的同类对象&#xff0c;如果未找到匹配的对象&#xff0c;则创建新对象 享元模式属于结构型模式&…

复现ConvE遇到问题:spodernet安装不上

问题&#xff1a; (py37) D:\Python\CodeHub\MTL\Siamese_MTL\ConvE>pip install -r requirements.txt Obtaining spodernet from gitgit://github.com/TimDettmers/spodernet.git#eggspodernet (from -r requirements.txt (line 2)) Cloning git://github.com/TimDettmers/…

开发一套小程序所需的费用取决于多个因素

随着移动互联网的发展&#xff0c;小程序已经成为许多企业和个人推广业务和服务的重要工具。 不过&#xff0c;对于很多想要开发小程序的人来说&#xff0c;最大的疑问就是开发一套小程序要花多少钱。 这个问题的答案并不是固定的&#xff0c;因为开发一个小程序的成本取决于几…

字符编码学习目录

字符 兆究竟在中文里表示百万还是万亿&#xff1f; 1分钟理解位、字节、字符之间的区别 1分钟搞清字符和字节的对应关系 1分钟理解什么是字符集 Unicode的表现形式? 什么是字符编码? encode decode作用&#xff0c;以及为什么会出现乱码呢&#xff1f;如何准确检查字符长度&…

一条SQL引起的系统不可用

一.前言 最近在运维系统&#xff0c;系统对客端突然报了403错误&#xff0c;从后台看发现了大量的慢SQL&#xff0c;导致查询超时&#xff0c;仔细分析我从来没见过那么厚颜无耻的SQL&#xff0c;一条SQL语句关联了一个大表&#xff08;6000数据&#xff09;查询了10次。我也很…

24计算机考研调剂 | 北京信息科技大学

北京信息科技大学接收调剂研究生 考研调剂招生信息 学校:北京信息科技大学 专业:工学->控制科学与工程->控制理论与控制工程 年级:2024 招生人数:- 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 各位同学&#xff0c;…