首页 > 数据库 >C#不装Oracle客户端,连接数据库的方法

C#不装Oracle客户端,连接数据库的方法

时间:2024-11-14 09:32:02浏览次数:1  
标签:C# 数据库 ManagedDataAccess Oracle new conn 客户端

  前几天临时碰到个项目需求,让从Oracle数据库中直接查询视图数据。

  按照正常的模式,首先问清楚Oracle版本,然后安装Oracle客户端,更改“listener.ora”监听文件,安装PLSQL,连接、查询。

  再在代码中引用“System.Data.OracleClient.dll”,配置连接字符串使用。

  太麻烦了!

  依稀记得之前有个方法可以不需要安装Oracle客户端,也不区分X86还是X64的方式,即使用Oracle官方提供的“Oracle.ManagedDataAccess.dll”,具体操作如下:

1、使用NuGet找到最新版的“Oracle.ManagedDataAccess”

2、代码中引用——using Oracle.ManagedDataAccess.Client;

3、连接数据库,执行查询语句

	string sHISConn = "User Id=用户名;Password=密码;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=数据库IP)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=数据库名)))";
	string sExeSql = string.Format("SELECT * FROM 视图名称 WHERE TO_DATE(PAYTIME,'yyyy-mm-dd hh24:mi:ss') > TO_DATE('{0}','yyyy-mm-dd hh24:mi:ss')", dtExeDate.AddDays(1).ToString("yyyy-MM-dd"));
	DataSet ds = new DataSet();
	using (var conn = new OracleConnection(HISConn))
	{
		conn.Open();
		OracleCommand cmd = new OracleCommand(sExeSql, conn);
		OracleDataAdapter dap = new OracleDataAdapter(cmd);
		dap.Fill(ds);
		dap.Dispose();
		conn.Close();
	}         

4、执行类语句用法类似,替换成相应的执行方法即可。

 

Done

 

标签:C#,数据库,ManagedDataAccess,Oracle,new,conn,客户端
From: https://www.cnblogs.com/dysjwang/p/18545354

相关文章

  • c++类循环依赖的问题
    目前的一种状况是A类中以B类指针作为成员变量,B类在构造时需传入A类指针作为参数。a.hclassA{ B*b;};b.hclassB{ B(A*a);};这种情况需要在头文件中前向声明,然后在.cpp文件中include另一个类的头文件。如下:a.hclassB;classA{ B*b;};b.hclassA;classB{ B......
  • 占用资源极低!这款轻量级 Nacos 性能炸裂!
    大家好,我是Java陈序员。在开发中,Nacos作为一款非常流行的微服务配置中心、注册中心,在构建微服务项目时往往会使用到它。但是对于个人开发者而言,云服务器资源有限,往往无法撑起Nacos服务的高内存使用!今天,给大家介绍一款轻量级的Nacos服务,功能平替,占用资源极低!关注微信公......
  • centos8 从安装docker到部署服务
    1.替换yum源为阿里镜像1.1备份cd/etc/yum.repos.dmkdirbaksmv./*.repo./baks1.2新建viCentos-Linux-BaseOS.repo填充内容[baseos]name=AlibabaCloudLinux$releasever-BaseOSbaseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/......
  • Java学习笔记--static关键字,介绍以及基本使用,static修饰成员的访问特点
    一,static的介绍以及基本使用问题1:如果现在在测试类中调用了许多学生类,里面有姓名,年龄,教室,但他们的教室都需要更改,现在该怎么办?定义static关键字1.概述:static是一个静态关键字2.使用:  a.修饰一个成员变量:   static数据类型变量名  b.修饰一个方法: ......
  • C#自动检测文件的编码
    StreamReader自动编码检测:使用 StreamReader 可以自动检测文件的编码(包括UTF-8BOM、UTF-16、等),并选择合适的编码来读取文件。它通过 detectEncodingFromByteOrderMarks:true 来启用BOM检测功能。字符处理:StreamReader 读取的是字符流,而不是字节流,因此不需要......
  • LeetCode【0046】全排列
    本文目录1中文题目2求解方法:回溯法2.1方法思路2.2Python代码2.3复杂度分析3题目总结1中文题目给定一个不含重复数字的数组nums,返回其所有可能的全排列。可以按任意顺序返回答案。示例:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,......
  • [LeetCode] 1385. Find the Distance Value Between Two Arrays
    Giventwointegerarraysarr1andarr2,andtheintegerd,returnthedistancevaluebetweenthetwoarrays.Thedistancevalueisdefinedasthenumberofelementsarr1[i]suchthatthereisnotanyelementarr2[j]where|arr1[i]-arr2[j]|<=d.Exampl......
  • 彻底解决ABA问题!深入剖析Java AtomicStampedReference的原子操作
    AtomicStampedReference是Java中用于解决CAS(Compare-And-Swap)操作的ABA问题的一种原子类,它通过引入“时间戳”的概念来扩展普通的原子引用。AtomicStampedReference不仅存储了原子操作所需的引用值,还存储了一个与之相关联的时间戳(stamp)。通过这个时间戳,AtomicStampedRe......
  • 充分挖掘东芝TB67S109AFTG步进电机驱动IC的潜力
    作为工程师和开发人员,项目中组件的选择对确保性能、可靠性和效率至关重要。东芝的TB67S109AFTG是一款两相双极步进电机驱动IC,其卓越的功能和强大的性能,使其成为您下一个项目的绝佳选择。以下是您应考虑在应用中使用TB67S109AFTG的几个原因主要特性和优势高性能PWM控制TB67S1......
  • 铠侠 KCD81PJE3T84:数据中心存储新宠
    在数字化浪潮汹涌澎湃的今天,企业对于数据中心存储设备的要求日益严苛。铠侠公司推出的KCD81PJE3T84数据中心NVMe™读密集型固态硬盘,以其卓越的性能、可靠的品质和先进的技术,为数据中心存储带来了全新的解决方案。一、性能飞跃,引领行业新标杆KCD81PJE3T84搭载PCIe®5.0(3......