C#连接Oracle数据库基本类

时间:2023-03-08 23:33:02
C#连接Oracle数据库基本类

C#用来连接oracle数据库的基本类:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using Oracle.DataAccess.Client; namespace DLL.Base
{
/// <summary>
/// oracle数据库基础类
/// </summary>
public class OracleDBContent
{
#region 私有
#region 私有属性
/// <summary>
/// 获取数据库连接字符串
/// </summary>
private static string _connectstring = ConfigurationManager.ConnectionStrings["OraConn"].ConnectionString;
#endregion #region 私有方法
/// <summary>
/// 获取数据(查询)
/// </summary>
/// <param name="sql">要执行的SQL语句</param>
/// <returns></returns>
private DataSet _GET(string sql)
{
try
{
DataSet dt = new DataSet();
OracleConnection connect = new OracleConnection(_connectstring);
connect.Open();
OracleDataAdapter db = new OracleDataAdapter(sql, connect);
db.Fill(dt);
connect.Close();
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 执行SQl语句(增、删、改)
/// </summary>
/// <param name="sql">要执行的SQl语句</param>
/// <returns></returns>
private bool _EXCUTE(string sql)
{
try
{
OracleConnection connect = new OracleConnection(_connectstring);
OracleCommand cmd = new OracleCommand();
cmd.Connection = connect;
cmd.CommandText = sql;
connect.Open();
cmd.ExecuteNonQuery();
connect.Close();
return true;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#endregion #region 公共方法
/// <summary>
/// 查询
/// </summary>
/// <param name="sql">数据库查询语句</param>
/// <returns></returns>
public virtual DataSet GetData(string sql)
{
try
{
string sqlstr = sql;
return _GET(sqlstr);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 新增
/// </summary>
/// <param name="sql">新增语句</param>
/// <returns></returns>
public virtual bool Insert(string sql)
{
try
{
return _EXCUTE(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 删除
/// </summary>
/// <param name="sql">删除语句</param>
/// <returns></returns>
public virtual bool Delete(string sql)
{
try
{
return _EXCUTE(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 更新
/// </summary>
/// <param name="sql">更新语句</param>
/// <returns></returns>
public virtual bool Update(string sql)
{
try
{
return _EXCUTE(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
}
}

(Web.config或App.config)配置文件中数据库连接的配置:

  <?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<!--测试数据库-->
<add name="OraConn" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.172)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Test)));User Id=sa;Password=test123;"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
<serviceMetadata httpGetEnabled="true"/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer> </configuration>