You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
253 lines
9.1 KiB
253 lines
9.1 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
using ICSSoft.Base.Config.DBHelper;
|
|
using Oracle.ManagedDataAccess.Client;
|
|
|
|
namespace ICSSoft.Frame.Data.DAL
|
|
{
|
|
public class DBHelper_Oracle
|
|
{
|
|
public static string DBServerIP = "";
|
|
public static string OracleSID = "";
|
|
public static string DBUserName = "";
|
|
public static string DBPassword = "";
|
|
|
|
public static OracleCommand cmd = null;
|
|
public static OracleConnection conn = null;
|
|
public static string connstr = "[DB.PLM]";
|
|
|
|
public DBHelper_Oracle()
|
|
{ }
|
|
#region 建立Oracle数据库连接对象
|
|
/// <returns>返回一个数据库连接的OracleConnection对象</returns>
|
|
public static OracleConnection init()
|
|
{
|
|
try
|
|
{
|
|
GetDataBaseConnect();
|
|
string connstr = "User Id={2};Password={3};Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME={1})))";
|
|
connstr = string.Format(connstr, DBServerIP, OracleSID, DBUserName, DBPassword);
|
|
conn = new OracleConnection(connstr);
|
|
if (conn.State != ConnectionState.Open)
|
|
{
|
|
conn.Open();
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
throw new Exception(e.Message.ToString());
|
|
}
|
|
return conn;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 获取数据源连接符
|
|
/// <summary>
|
|
/// 数据源ID(GUID)
|
|
/// </summary>
|
|
/// <param name="dbId"></param>
|
|
/// <returns></returns>
|
|
public static void GetDataBaseConnect()
|
|
{
|
|
ICSSoft.Frame.Data.DAL.APPConfigForOracl.DBLinkClass item = ICSSoft.Frame.Data.DAL.APPConfigForOracl.AppConfig.GetDataBaseClass(connstr);
|
|
if (item != null)
|
|
{
|
|
DBServerIP = item.DBIpAddress;
|
|
OracleSID = item.DBName;
|
|
DBUserName = item.DBUser;
|
|
DBPassword = item.DBPwd;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 设置OracleCommand对象
|
|
/// <param name="cmd">OracleCommand对象 </param>
|
|
/// <param name="cmdText">命令文本</param>
|
|
/// <param name="cmdType">命令类型</param>
|
|
/// <param name="cmdParms">参数集合</param>
|
|
private static void SetCommand(OracleCommand cmd, string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
|
|
{
|
|
cmd.Connection = conn;
|
|
cmd.CommandText = cmdText;
|
|
cmd.CommandType = cmdType;
|
|
if (cmdParms != null)
|
|
{
|
|
cmd.Parameters.AddRange(cmdParms);
|
|
}
|
|
}
|
|
#endregion
|
|
#region 执行相应的Oracle sql语句,返回相应的DataSet对象
|
|
/// <param name="sqlstr">sql语句</param>
|
|
/// <returns>返回相应的DataSet对象</returns>
|
|
public static DataSet GetDataSet(string sqlstr)
|
|
{
|
|
DataSet set = new DataSet();
|
|
try
|
|
{
|
|
init();
|
|
OracleDataAdapter adp = new OracleDataAdapter(sqlstr, conn);
|
|
adp.Fill(set);
|
|
conn.Close();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
throw new Exception(e.Message.ToString());
|
|
}
|
|
return set;
|
|
}
|
|
#endregion
|
|
#region 执行sql语句,返回DataSet对象
|
|
/// <param name="sqlstr">sql语句</param>
|
|
/// <param name="tableName">表名</param>
|
|
/// <returns>返回DataSet对象</returns>
|
|
public static DataSet GetDataSet(string sqlstr, string tableName)
|
|
{
|
|
DataSet set = new DataSet();
|
|
try
|
|
{
|
|
init();
|
|
OracleDataAdapter adp = new OracleDataAdapter(sqlstr, conn);
|
|
adp.Fill(set, tableName);
|
|
conn.Close();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
throw new Exception(e.Message.ToString());
|
|
}
|
|
return set;
|
|
}
|
|
#endregion
|
|
#region 执行不带参数的sql语句,返回受影响的行数
|
|
/// <param name="cmdstr">增,删,改sql语句</param>
|
|
/// <returns>返回受影响的行数</returns>
|
|
public static int ExecuteNonQuery(string cmdText)
|
|
{
|
|
int count;
|
|
try
|
|
{
|
|
init();
|
|
cmd = new OracleCommand(cmdText, conn);
|
|
count = cmd.ExecuteNonQuery();
|
|
conn.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
return count;
|
|
}
|
|
#endregion
|
|
#region 执行带参数的Oracle sql语句或存储过程,返回行数
|
|
/// <param name="cmdText">带参数的sql语句和存储过程名</param>
|
|
/// <param name="cmdType">命令类型</param>
|
|
/// <param name="cmdParms">参数集合</param>
|
|
/// <returns>返回受影响的行数</returns>
|
|
public static int ExecuteNonQuery(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
|
|
{
|
|
int count;
|
|
try
|
|
{
|
|
init();
|
|
cmd = new OracleCommand();
|
|
SetCommand(cmd, cmdText, cmdType, cmdParms);
|
|
count = cmd.ExecuteNonQuery();
|
|
cmd.Parameters.Clear();
|
|
conn.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
return count;
|
|
}
|
|
#endregion
|
|
#region 执行不带参数sql语句,返回一个从数据源读取数据的OracleDataReader对象
|
|
/// <param name="cmdstr">相应的sql语句</param>
|
|
/// <returns>返回一个从数据源读取数据的OracleDataReader对象</returns>
|
|
public static OracleDataReader ExecuteReader(string cmdText)
|
|
{
|
|
OracleDataReader reader;
|
|
try
|
|
{
|
|
init();
|
|
cmd = new OracleCommand(cmdText, conn);
|
|
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
return reader;
|
|
}
|
|
#endregion
|
|
#region 执行带参数的sql语句或存储过程,返回一个从数据源读取数据的OracleDataReader对象
|
|
/// <param name="cmdText">sql语句或存储过程名</param>
|
|
/// <param name="cmdType">命令类型</param>
|
|
/// <param name="cmdParms">参数集合</param>
|
|
/// <returns>返回一个从数据源读取数据的OracleDataReader对象</returns>
|
|
public static OracleDataReader ExecuteReader(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
|
|
{
|
|
OracleDataReader reader;
|
|
try
|
|
{
|
|
init();
|
|
cmd = new OracleCommand();
|
|
SetCommand(cmd, cmdText, cmdType, cmdParms);
|
|
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
return reader;
|
|
}
|
|
#endregion
|
|
#region 执行不带参数sql语句,返回结果集首行首列的值object
|
|
/// <param name="cmdstr">相应的sql语句</param>
|
|
/// <returns>返回结果集首行首列的值object</returns>
|
|
public static object ExecuteScalar(string cmdText)
|
|
{
|
|
object obj;
|
|
try
|
|
{
|
|
init();
|
|
cmd = new OracleCommand(cmdText, conn);
|
|
obj = cmd.ExecuteScalar();
|
|
conn.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
return obj;
|
|
}
|
|
#endregion
|
|
#region 执行带参数sql语句或存储过程,返回结果集首行首列的值object
|
|
/// <param name="cmdText">sql语句或存储过程名</param>
|
|
/// <param name="cmdType">命令类型</param>
|
|
/// <param name="cmdParms">返回结果集首行首列的值object</param>
|
|
/// <returns></returns>
|
|
public static object ExecuteScalar(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
|
|
{
|
|
object obj;
|
|
try
|
|
{
|
|
init();
|
|
cmd = new OracleCommand();
|
|
SetCommand(cmd, cmdText, cmdType, cmdParms);
|
|
obj = cmd.ExecuteScalar();
|
|
conn.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
return obj;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|