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
建群声明: 本着技术在于分享,方便大家交流学习的初心,特此建立【编程内功修炼交流群】,为大家答疑解惑。热烈欢迎各位爱交流学习的程序员进群,也希望进群的大佬能不吝分享自己遇到的技术问题和学习心得!进群方式:扫码关注公众号,后台回复【进群】。
