C#连接Oracle数据库的多种方法总结

 更新时间:2023年04月21日 10:51:35   作者:^@^lemon tea^@^  
最近小项目当中要使用C#来连接Oracle数据库来完成系统的操作,这篇文章主要给大家介绍了关于C#连接Oracle数据库的多种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

C# 连接oracle数据库常用的三种方法有三种:

一、Oracle.ManagedDataAccess.dll:Oracle官方提供的oracle数据库访问组件,不存在其他依赖dll库,推荐该方法最为重要的是:不需要安装oracle客户端,也不区分x86位和x64位直接就能用,连上其他电脑或者服务端oracle数据库。

二、Oracle.DataAccess.Client.dll:也叫ODP.net,是Oracle提供的数据库访问dll库。好处是:不需要安装客户端也能访问服务器上的oracle,不需要配置tnsNames.Ora文件,但是区分x86位和x64,也比较麻烦。

三、System.Data.OracleClient.dll:是微软提供的dll,可以直接引用,但是VS会提示相关方法已过时,这个提示表明微软建议不使用。该方法需要安装客户端才可以用,并且也是区分区分x86位和x64,容易出现兼容问题。

综上所述介绍,我这里推荐第一种方法,下面就以方法一为实例讲解Oracle数据库连接和获取数据。

**************************************************************************************************************   

Oracle.ManagedDataAccess.Client.dll

环境要求  >= .NET Framework4.0;

编译器使用的是VS2019,在项目中添加Oracle.ManagedDataAccess.Client.dll文件,方法步骤如下:工具 ---- NuGet包管理器  ---- 管理解决方案NuGet程序包 ---- 浏览面板 ---- 在搜索栏中输入Oracle.ManagedDataAccess.Client ---- 搜索 ---- 在显示库文件中选择插件下载即可,搜索显示结果图下图所示。我这里由于项目.NET 的要求,下载的版本是19.xx.xx版本的。

下载完成插件,VS会自动安装,然后把库添加至引用。

**************************************************************************************************************      数据库连接实现,首先添加using Oracle.ManagedDataAccess.Client;命名空间,这里就简单的实现数据库连接和获取数据,具体代码如下:

//DataTableName:视图/表名称;checkNum:查询条件
public DataTable GetOracleData(string DataTableName, string checkNum)
{
	try
	{
		string SqlConnStr = "Password=*****;User ID=sys;Connection Lifetime=15;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=102.16.1.113)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));";
		OracleConnection conn = new OracleConnection(SqlConnStr);
		string sqlStr = string.Format(@"SELECT * from ""{0}""  WHERE ""CheckupCode""='{1}'", DataTableName, checkNum);
		conn.Open();
		OracleCommand cmd = new OracleCommand();
		cmd.Connection = conn;
		cmd.CommandText = sqlStr;
		cmd.CommandType = CommandType.Text;
		OracleDataReader dReader = cmd.ExecuteReader();
		string dataStr = string.Empty;
		DataRow dataRow;
		DataTable oracleDataTb = new DataTable();
		//设置Table名和Column名
		oracleDataTb.TableName = "AerospaceCenterHis";
		for (int j = 0; j < dReader.FieldCount; j++)
		{
			oracleDataTb.Columns.Add(dReader.GetName(j));//获取列名
		}
		//循环取数据集合中的数据,存到DataTable中
		do
		{
			while (dReader.Read())
			{
				dataRow = oracleDataTb.NewRow();
				for (int j = 0; j < dReader.FieldCount; j++)
				{
					dataStr = dReader[j].ToString();
					dataRow[j] = dataStr;
				}
				oracleDataTb.Rows.Add(dataRow);
			}
		} while (dReader.NextResult());
 
		return oracleDataTb;
	}
	catch (Exception ex)
	{
		
	}
}

************************************************************************************************************** 

这里要注意的是:连接到服务端上的Oracle数据库时,需要把配置文件修改了,使其能够进行局域网或者远程的访问,还要把端口开放。

在Oracle数据库安装路径,当然每台安装oracle数据库的地址都是不同的(例如:C:\Oracle11g\product\11.2.0\dbhome_1\network\admin\listener.ora   tnsnames.ora)中找到文件listener.ora和tnsnames.ora文件,把两个文件中HOST = localhost配置改成HOST=192.186.11.1(服务器IP地址)重新启动服务。

到此这篇关于C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。

************************************************************************************************************** 

总结

到此这篇关于C#连接Oracle数据库的文章就介绍到这了,更多相关C#连接Oracle数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)

    C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)

    用C#如何生成二维码,我们可以通过现有的第三方dll直接来实现,下面列出几种不同的生成方法
    2016-12-12
  • Unity3D启动外部程序并传递参数的实现

    Unity3D启动外部程序并传递参数的实现

    这篇文章主要介绍了Unity3D启动外部程序并传递参数的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#多线程之线程绑定ThreadLocal类

    C#多线程之线程绑定ThreadLocal类

    这篇文章介绍了C#多线程之线程绑定ThreadLocal类的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 使用C#调用系统API实现内存注入的代码

    使用C#调用系统API实现内存注入的代码

    使用C#调用系统API实现内存注入的代码,学习c#的朋友可以参考下。
    2011-06-06
  • c#实现用SQL池,多线程定时批量执行SQL语句的方法

    c#实现用SQL池,多线程定时批量执行SQL语句的方法

    构建SQL池,分离业务逻辑层和数据访问层,让业务逻辑层从低效的数据库操作解脱,以提高系统整体性能
    2013-10-10
  • c#委托详解和和示例分享

    c#委托详解和和示例分享

    这篇文章详细探讨了C#中的委托,列举其主要的实现方式,并分析其在设计层面和编码层面带来的好处,最后会讨论其安全性和执行效率等,当然还有实现示例
    2014-03-03
  • 利用C#实现HTML模板的循环输出

    利用C#实现HTML模板的循环输出

    模板循环输出 ,是指使用 UI 前端设计的 HTML 模板片断,并结合数据记录进行循环输出的过程,本文将介绍如何中通过 C# 实现操作 HTML 模板的循环输出,文章通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-06-06
  • Unity实现局域网聊天室功能

    Unity实现局域网聊天室功能

    这篇文章主要为大家详细介绍了Unity实现局域网聊天室功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • C#中基于流的XML文件操作笔记

    C#中基于流的XML文件操作笔记

    这篇文章主要介绍了C#中基于流的XML文件操作笔记,本文主要是讲解针对XmlReader和XmlWriters两个XML读写类的使用,需要的朋友可以参考下
    2015-06-06
  • c# Linq常用的小技巧

    c# Linq常用的小技巧

    这篇文章主要介绍了c# Linq常用的小技巧,文中讲解非常详细,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论