Oracle数据库连接帮助类
帮助类
/// <summary>
/// OracleDBHelper 的摘要说明
/// </summary>
public class OracleDBHelper
{
//Oracle 数据库连接
private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["OracleDataSource"].ConnectionString;
private static DataTable GetDataTable(OracleConnection conn, string sql, int timeOut = 40)
{
var cmd = new OracleCommand(sql, conn) { CommandType = CommandType.Text, CommandTimeout = timeOut };
var da = new OracleDataAdapter(cmd);
var dt = new DataTable("dataTable");
da.Fill(dt);
return dt;
}
private static void ExecuteNonQuery(OracleConnection conn, CommandType commandType, string sql, OracleParameter[] paras, int timeOut = 40)
{
var cmd = new OracleCommand(sql, conn) { CommandType = commandType, CommandTimeout = timeOut };
cmd.Parameters.AddRange(paras);
cmd.ExecuteNonQuery();
}
private static void ExecuteNonQuery(OracleConnection conn, OracleTransaction tran, string sql)
{
var cmd = new OracleCommand(sql, conn) { CommandType = CommandType.Text, Transaction = tran };
cmd.ExecuteNonQuery();
}
private static void ExecuteNonQuery(OracleConnection conn, CommandType commandType, string sql, int timeOut = 40)
{
var cmd = new OracleCommand(sql, conn) { CommandType = CommandType.Text, CommandTimeout = timeOut };
cmd.ExecuteNonQuery();
}
private static OracleDataReader ExecuteDataReader(OracleConnection conn, string sql, int timeOut = 40)
{
var cmd = new OracleCommand(sql, conn) { CommandType = CommandType.Text, CommandTimeout = timeOut };
return cmd.ExecuteReader();
}
}
使用
private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["OracleDataSource"].ConnectionString;
- 查询
using (var conn = new OracleConnection(ConnectionString))
{
conn.Open();
try
{
var sql = "";
DataTable dt = GetDataTable(conn, sql);
}
catch (Exception ex)
{
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
- 更新
using (var conn = new OracleConnection(ConnectionString))
{
conn.Open();
//using (OracleTransaction trans = conn.BeginTransaction())//事务
{
try
{
foreach (var l in list)
{
var sql = "";
//ExecuteNonQuery(conn, trans, sql);
ExecuteNonQuery(conn, CommandType.Text, sql);
}
//trans.Commit();
return 1;
}
catch (Exception ex)
{
//trans.Rollback();
return 0;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
}
- 执行Procedure
using (var conn = new OracleConnection(ConnectionString))
{
conn.Open();
var parms = new[]
{
new OracleParameter("a", OracleType.Number, 10),
new OracleParameter("b", OracleType.VarChar),
new OracleParameter("c", OracleType.DateTime),
new OracleParameter("d", OracleType.Number)
};
parms[0].Value = recordId;
parms[1].Value = deviceId;
parms[2].Value = startTime;
parms[4].Direction = ParameterDirection.Output;//输出
ExecuteNonQuery(conn, CommandType.StoredProcedure, "Procedure_Test", parms);
if (parms[4].Value != DBNull.Value)
{
return Convert.ToDouble(parms[4].Value);
}
return 0;
}
连接配置
<connectionStrings>
<!--数据库配置-->
<!--<add name="SqlDataSource" connectionString="Data Source=10.2.137.28;Database=AAATEST;User ID=sa;Password=tdsoft;Pooling=true;connection Timeout=600;Max Pool Size = 512;" providerName="System.Data.SqlClient" />-->
<!--<add name="OracleDataSource" connectionString="Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 119.39.124.93)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl)));User ID=root;Password=TEST" providerName="System.Data.OracleClient" />-->
<add name="OracleDataSource" connectionString="Data Source=tonglin;User ID=root;Password=123456;Unicode=True" providerName="System.Data.OracleClient" />
</connectionStrings>
本文来自博客园,作者:码农阿亮,转载请注明原文链接:https://www.cnblogs.com/wml-it/p/16592618.html
技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
开源库地址,欢迎点亮:
GitHub:https://github.com/ITMingliang
Gitee: https://gitee.com/mingliang_it
GitLab: https://gitlab.com/ITMingliang
建群声明: 本着技术在于分享,方便大家交流学习的初心,特此建立【编程内功修炼交流群】,为大家答疑解惑。热烈欢迎各位爱交流学习的程序员进群,也希望进群的大佬能不吝分享自己遇到的技术问题和学习心得!进群方式:扫码关注公众号,后台回复【进群】。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2021-08-16 自定义模型转JSON 之Newtonsoft.Json.dll 、System.Runtime.Serialization.dll和System.Web.Extensions.dll
2021-08-16 JSONStrToList、StrTosJSON
2021-08-16 C#实现连接数据库
2021-08-16 C#前端画表