C# 连接 Oracle 数据库

目录

本文使用的环境

Oracle.DataAccess.dll 在哪

创建新项目

选择【控制台应用 → 下一步】

【命名 → 选择代码路径 → 选择框架版本 → 下一步】

【右击项目 → 添加 → 新建项】

【选择 → 类 → 命名 → 添加】

【右击引用 → 添加引用】

【浏览 → 浏览】

【选择 dll 文件 → 添加 → 确定】

进入 【OracleHelper.cs → 粘贴代码】

进入 【Program.cs → 粘贴测试代码】

至此 Oracle 建立连接成功。


本文使用的环境

        Windows10、VS2019、Oracle 11g

Oracle.DataAccess.dll 在哪

一般默认在 Oracle 的安装路径下,我的路径在这个文件夹内部【C:\Oracle\product\11.2.0\client_1\ODP.NET\bin\2.x】

使用 C# 自带的 Oracle.DataAccess.dll 即可实现基础的 Oracle 数据库连接,具体方法如下

创建新项目

选择【控制台应用 → 下一步】

【命名 → 选择代码路径 → 选择框架版本 → 下一步】

【右击项目 → 添加 → 新建项】

【选择 → 类 → 命名 → 添加】

【右击引用 → 添加引用】

【浏览 → 浏览】

【选择 dll 文件 → 添加 → 确定】

进入 【OracleHelper.cs → 粘贴代码】

        TNS在哪参见:TNS 存储路径

using Oracle.DataAccess.Client;
using System.Data;
namespace connectOracle
{
class OracleHelper
{
// Data Source 直接拷贝 TNS 里面的内容,去掉 "XXX.XXX.COM.CN =" 注意区分正式与测试环境
private static string connStr = "User Id=xxxx;Password=xxxx;" +
"Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.65.1.xx)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = xxxx)))";
#region 执行SQL语句,返回受影响行数
public static int ExecuteNonQuery(string sql, params OracleParameter[] parameters)
{
using (OracleConnection conn = new OracleConnection(connStr))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
int i = cmd.ExecuteNonQuery();
conn.Close();
return i;
}
}
}
#endregion
#region 执行SQL语句,返回DataTable;只用来执行查询结果比较少的情况
public static DataTable ExecuteDataTable(string sql, params OracleParameter[] parameters)
{
using (OracleConnection conn = new OracleConnection(connStr))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataTable datatable = new DataTable();
adapter.Fill(datatable);
conn.Close();
return datatable;
}
}
}
#endregion
}
}

进入 【Program.cs → 粘贴测试代码】

using Oracle.DataAccess.Client;
using System;
using System.Data;
namespace connectOracle
{
class Program
{
static void Main(string[] args)
{
string sSql;
DataTable dt = new DataTable();
// sql 语句
sSql = " select a.*, a.rowid from students a where a.name = 'xxx' ";
// sql 赋值 无参数传入 sql
OracleParameter[] paramATIO = new OracleParameter[] { };
// sql 语句
// sSql = " select * from students where name = :name and age = :age";
// string name = "张三";
// int age = 16;
// 有参数传入 sql
// OracleParameter[] paramATIO = new OracleParameter[] {
// new OracleParameter(":name",name ),
// new OracleParameter(":age",age + "")
// };
// 执行sql
dt = OracleHelper.ExecuteDataTable(sSql, paramATIO);
if (dt.Rows.Count > 0)
{
Console.WriteLine("该 sql 执行结果共计" + dt.Rows.Count + " 行");
Console.ReadKey();
}
}
}
}

至此 Oracle 建立连接成功。

posted @   RokiZhang  阅读(83)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示