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

作者:^@^lemon?tea^@^ 时间:2024-01-23 12:43:45 

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版本的。

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

下载完成插件,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地址)重新启动服务。

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

来源:https://blog.csdn.net/BYH371256/article/details/126378039

标签:c#,连接,oracle数据库
0
投稿

猜你喜欢

  • 当恢复sqlserver bak文件时,原始的用户无法删除的解决方法

    2024-01-15 07:59:00
  • Python的三个重要函数详解

    2022-05-19 04:58:45
  • 利用Python将数值型特征进行离散化操作的方法

    2023-12-02 02:43:36
  • PIL对上传到Django的图片进行处理并保存的实例

    2023-04-03 12:40:04
  • Python简单实现两个任意字符串乘积的方法示例

    2023-10-29 12:04:40
  • Python数据分析之绘制ppi-cpi剪刀差图形

    2023-01-10 09:57:03
  • vscode 配置eslint和prettier正确方法

    2022-12-31 04:54:44
  • 不要忽略了颜色的可用性

    2009-03-05 18:19:00
  • JS在IE和FireFox之间常用函数的区别小结

    2024-04-16 09:54:54
  • Python的Django框架中从url中捕捉文本的方法

    2023-08-29 11:13:13
  • 用Mimer Validator检查SQL查询

    2024-01-24 17:12:01
  • JavaScript数组的5种迭代方法

    2024-04-22 22:17:42
  • 用C#对ADO.NET数据库完成简单操作的方法

    2024-01-15 09:12:58
  • 浅谈dataframe中更改列属性的方法

    2022-12-08 02:00:06
  • Python简单获取网卡名称及其IP地址的方法【基于psutil模块】

    2022-10-07 19:52:15
  • Python基于Tkinter模块实现的弹球小游戏

    2022-11-25 15:32:16
  • 使用Python操作MySql数据库和MsSql数据库

    2024-01-21 02:20:00
  • python使用matplotlib库生成随机漫步图

    2021-03-01 15:11:37
  • JavaScript验证图片类型(扩展名)的函数分享

    2024-04-17 09:51:00
  • Python虚拟环境virtualenv创建及使用过程图解

    2023-05-18 10:57:22
  • asp之家 网络编程 m.aspxhome.com