434 lines
15 KiB
C#
434 lines
15 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Data;
|
||
using System.Data.OracleClient;
|
||
using System.Configuration;
|
||
|
||
|
||
namespace OraDataBase
|
||
{
|
||
public class OracleHelper
|
||
{
|
||
|
||
static string condb = "Data Source=TRQCXC;user=jlxt;password=123456;";
|
||
static string condbn = "Data Source=orcl;user=cwbase10_9999;password=123456;";
|
||
public static DataSet DataAdapter(string sqlCmd, string tabName)//返回数据集 适配器
|
||
{
|
||
OracleConnection con = new OracleConnection(condb);
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlCmd;
|
||
OracleDataAdapter oda = new OracleDataAdapter(sqlCmd, con);
|
||
DataSet ds = new DataSet();
|
||
oda.Fill(ds, tabName);
|
||
con.Close();
|
||
return ds;
|
||
}
|
||
|
||
public static DataSet DataAdapter100(string sqlCmd, string tabName)//返回数据集 适配器
|
||
{
|
||
OracleConnection con = new OracleConnection(condbn);
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlCmd;
|
||
OracleDataAdapter oda = new OracleDataAdapter(sqlCmd, con);
|
||
DataSet ds = new DataSet();
|
||
oda.Fill(ds, tabName);
|
||
con.Close();
|
||
return ds;
|
||
}
|
||
|
||
public enum SDACmd { select, delete, update, insert }
|
||
public static DataSet DataAdapter(string sqlCmd, SDACmd command, string tabName, params OracleParameter[] paraList)
|
||
{
|
||
OracleConnection con = new OracleConnection(condb);
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlCmd;
|
||
if (paraList != null)
|
||
{
|
||
cmd.CommandType = CommandType.Text;
|
||
foreach (OracleParameter para in paraList)
|
||
{ cmd.Parameters.Add(para); }
|
||
|
||
}
|
||
OracleDataAdapter oda = new OracleDataAdapter();
|
||
switch (command)
|
||
{
|
||
case SDACmd.select:
|
||
oda.SelectCommand = cmd;
|
||
break;
|
||
case SDACmd.insert:
|
||
oda.InsertCommand = cmd;
|
||
break;
|
||
case SDACmd.update:
|
||
oda.UpdateCommand = cmd;
|
||
break;
|
||
case SDACmd.delete:
|
||
oda.DeleteCommand = cmd;
|
||
break;
|
||
}
|
||
DataSet ds = new DataSet();
|
||
oda.Fill(ds, tabName);
|
||
|
||
con.Close();
|
||
return ds;
|
||
|
||
|
||
}
|
||
|
||
public static OracleDataReader ExecReader(string sqlcmd, params OracleParameter[] paraList)// 逐条读取 返加 dataReader; 在程序中使用时记得关闭 odr.Close(); odr.Dispose();
|
||
{
|
||
OracleConnection con = new OracleConnection(condb);
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlcmd;
|
||
if (paraList != null)
|
||
{
|
||
cmd.CommandType = CommandType.Text;
|
||
foreach (OracleParameter para in paraList)
|
||
{ cmd.Parameters.Add(para); }
|
||
}
|
||
con.Open();
|
||
OracleDataReader odr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
|
||
|
||
return odr;
|
||
}
|
||
|
||
public static void ExecNonQuery(string sqlcmd, params OracleParameter[] paraList)
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.CommandTimeout = 600;
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlcmd;
|
||
if (paraList != null)
|
||
{
|
||
cmd.CommandType = CommandType.Text;
|
||
foreach (OracleParameter para in paraList)
|
||
{ cmd.Parameters.Add(para); }
|
||
}
|
||
con.Open();
|
||
cmd.ExecuteNonQuery();
|
||
con.Close();
|
||
|
||
}
|
||
|
||
}
|
||
public static void ExecNonQueryJu(string sqlcmd, params OracleParameter[] paraList)
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condbn))
|
||
{
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.CommandTimeout = 600;
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlcmd;
|
||
if (paraList != null)
|
||
{
|
||
cmd.CommandType = CommandType.Text;
|
||
foreach (OracleParameter para in paraList)
|
||
{ cmd.Parameters.Add(para); }
|
||
}
|
||
con.Open();
|
||
cmd.ExecuteNonQuery();
|
||
con.Close();
|
||
|
||
}
|
||
|
||
}
|
||
|
||
public static int ExecNonQuery(string sqlcmd, bool ifis)//返回ID
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
int maxid;
|
||
OracleCommand cmd = new OracleCommand();
|
||
cmd.Connection = con;
|
||
cmd.CommandText = sqlcmd;
|
||
con.Open();
|
||
maxid = Convert.ToInt32(cmd.ExecuteScalar().ToString());
|
||
con.Close();
|
||
return maxid;
|
||
}
|
||
|
||
}
|
||
|
||
public static int ExecuteNonQuery(string sql)
|
||
{
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
int Num;
|
||
con.Open();
|
||
OracleCommand cmd = new OracleCommand(sql, con);
|
||
Num = cmd.ExecuteNonQuery();
|
||
con.Close();
|
||
return Num;
|
||
}
|
||
}
|
||
public static int ExecuteNonQuery100(string sql)
|
||
{
|
||
using (OracleConnection con = new OracleConnection(condbn))
|
||
{
|
||
int Num;
|
||
con.Open();
|
||
OracleCommand cmd = new OracleCommand(sql, con);
|
||
Num = cmd.ExecuteNonQuery();
|
||
con.Close();
|
||
return Num;
|
||
}
|
||
}
|
||
/**/
|
||
/// <summary>
|
||
/// 执行存储过程
|
||
/// </summary>
|
||
/// <param name="sprocName">存储过程名</param>
|
||
/// <param name="parameters">存储过程参数</param>
|
||
/// <returns>os_Info执行信息</returns>
|
||
public static string RunProcedure(string sprocName, IDataParameter[] parameters)
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
string infostr;
|
||
con.Open();
|
||
|
||
OracleCommand cmd = new OracleCommand(sprocName, con);
|
||
cmd.CommandType = CommandType.StoredProcedure;
|
||
if (parameters != null)
|
||
{
|
||
foreach (IDataParameter parameter in parameters)
|
||
{
|
||
cmd.Parameters.Add(parameter);
|
||
}
|
||
}
|
||
cmd.Parameters.Add("os_Info", OracleType.VarChar, 30);
|
||
cmd.Parameters["os_Info"].Direction = ParameterDirection.Output;
|
||
cmd.ExecuteNonQuery();
|
||
//infostr = Convert.ToInt32(cmd.ExecuteScalar().ToString());
|
||
infostr = cmd.Parameters["os_Info"].Value.ToString();
|
||
con.Close();
|
||
return infostr;
|
||
}
|
||
}
|
||
/**/
|
||
/// <summary>
|
||
/// 执行存储过程
|
||
/// </summary>
|
||
/// <param name="sprocName">存储过程名</param>
|
||
/// <param name="TableName">表名</param>
|
||
/// <param name="parameters">存储过程参数</param>
|
||
/// <returns>返回记录集</returns>
|
||
public static DataSet RunProcedureDataSet(string sprocName, IDataParameter[] parameters)
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
con.Open();
|
||
|
||
OracleCommand cmd = new OracleCommand(sprocName, con);
|
||
cmd.CommandType = CommandType.StoredProcedure;
|
||
if (parameters != null)
|
||
{
|
||
foreach (IDataParameter parameter in parameters)
|
||
{
|
||
cmd.Parameters.Add(parameter);
|
||
}
|
||
}
|
||
cmd.Parameters.Add("TZ_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["TZ_CURSOR"].Direction = ParameterDirection.Output;
|
||
cmd.Parameters.Add("HZ_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["HZ_CURSOR"].Direction = ParameterDirection.Output;
|
||
cmd.Parameters.Add("QJ_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["QJ_CURSOR"].Direction = ParameterDirection.Output;
|
||
cmd.Parameters.Add("AL_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["AL_CURSOR"].Direction = ParameterDirection.Output;
|
||
DataSet ds = new DataSet();
|
||
OracleDataAdapter da = new OracleDataAdapter(cmd);
|
||
da.Fill(ds);
|
||
con.Close();
|
||
return ds;
|
||
}
|
||
}
|
||
|
||
public static DataSet RunProcedureDataSetfb(string sprocName, IDataParameter[] parameters)
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
con.Open();
|
||
|
||
OracleCommand cmd = new OracleCommand(sprocName, con);
|
||
cmd.CommandType = CommandType.StoredProcedure;
|
||
if (parameters != null)
|
||
{
|
||
foreach (IDataParameter parameter in parameters)
|
||
{
|
||
cmd.Parameters.Add(parameter);
|
||
}
|
||
}
|
||
cmd.Parameters.Add("TZ_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["TZ_CURSOR"].Direction = ParameterDirection.Output;
|
||
cmd.Parameters.Add("HZ_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["HZ_CURSOR"].Direction = ParameterDirection.Output;
|
||
DataSet ds = new DataSet();
|
||
OracleDataAdapter da = new OracleDataAdapter(cmd);
|
||
da.Fill(ds);
|
||
con.Close();
|
||
return ds;
|
||
}
|
||
}
|
||
|
||
//Andy 20131008
|
||
public static DataSet RunProcedureDataSetRY(string sprocName, IDataParameter[] parameters)
|
||
{
|
||
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
con.Open();
|
||
|
||
OracleCommand cmd = new OracleCommand(sprocName, con);
|
||
cmd.CommandType = CommandType.StoredProcedure;
|
||
if (parameters != null)
|
||
{
|
||
foreach (IDataParameter parameter in parameters)
|
||
{
|
||
cmd.Parameters.Add(parameter);
|
||
}
|
||
}
|
||
cmd.Parameters.Add("RY_CURSOR_ALL", OracleType.Cursor);
|
||
cmd.Parameters["RY_CURSOR_ALL"].Direction = ParameterDirection.Output;
|
||
cmd.Parameters.Add("RY_CURSOR_Dept", OracleType.Cursor);
|
||
cmd.Parameters["RY_CURSOR_Dept"].Direction = ParameterDirection.Output;
|
||
DataSet ds = new DataSet();
|
||
OracleDataAdapter da = new OracleDataAdapter(cmd);
|
||
da.Fill(ds);
|
||
con.Close();
|
||
return ds;
|
||
}
|
||
}
|
||
|
||
//Andy 20130724
|
||
public static DataSet RunProcedureDataSetColumnChart(string sprocName, IDataParameter[] parameters)
|
||
{
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
con.Open();
|
||
|
||
OracleCommand cmd = new OracleCommand(sprocName, con);
|
||
cmd.CommandType = CommandType.StoredProcedure;
|
||
if (parameters != null)
|
||
{
|
||
foreach (IDataParameter parameter in parameters)
|
||
{
|
||
cmd.Parameters.Add(parameter);
|
||
}
|
||
}
|
||
cmd.Parameters.Add("TZ_CURSOR", OracleType.Cursor);
|
||
cmd.Parameters["TZ_CURSOR"].Direction = ParameterDirection.Output;
|
||
DataSet ds = new DataSet();
|
||
OracleDataAdapter da = new OracleDataAdapter(cmd);
|
||
da.Fill(ds);
|
||
con.Close();
|
||
return ds;
|
||
}
|
||
}
|
||
|
||
public static string ExecuteProcedure(string sprocName, IDataParameter parameter)
|
||
{
|
||
string info;
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
con.Open();
|
||
OracleCommand cmd = new OracleCommand(sprocName, con);
|
||
cmd.CommandType = CommandType.StoredProcedure;
|
||
if (parameter != null)
|
||
{
|
||
cmd.Parameters.Add(parameter);
|
||
}
|
||
cmd.Parameters.Add("Info", OracleType.VarChar, 30);
|
||
cmd.Parameters["Info"].Direction = ParameterDirection.Output;
|
||
cmd.ExecuteNonQuery();
|
||
info = cmd.Parameters["Info"].Value.ToString();
|
||
con.Close();
|
||
return info;
|
||
}
|
||
}
|
||
|
||
public static int isExit(string sql)
|
||
{
|
||
using (OracleConnection con = new OracleConnection(condb))
|
||
{
|
||
int Num;
|
||
con.Open();
|
||
OracleCommand cmd = new OracleCommand(sql, con);
|
||
Num = Convert.ToInt32(cmd.ExecuteScalar());
|
||
con.Close();
|
||
return Num;
|
||
}
|
||
}
|
||
|
||
|
||
//201309 add
|
||
public static DataTable ExecuteDataTable(string sql)
|
||
{
|
||
// Create a new Oracle command
|
||
OracleCommand command = null;
|
||
|
||
try
|
||
{
|
||
//Create a connection
|
||
using (OracleConnection connection = new OracleConnection(condb))
|
||
{
|
||
command = new OracleCommand(sql, connection);
|
||
OracleDataAdapter adapter = new OracleDataAdapter(command);
|
||
DataSet ds = new DataSet();
|
||
//System.Threading.Thread.Sleep(10);
|
||
adapter.Fill(ds);
|
||
|
||
|
||
//if(ds.Tables.Count<1)
|
||
// return;
|
||
DataTable dt = ds.Tables[0].Copy();
|
||
ds.Dispose();
|
||
return dt;
|
||
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//strError = " oracle查询返回表格错误!" + ex.Message;
|
||
return null;
|
||
}
|
||
}
|
||
public static void SaveDataTable(string sql, DataTable _TempTable)
|
||
{
|
||
// Create a new Oracle command
|
||
OracleCommand command = null;
|
||
try
|
||
{
|
||
//Create a connection
|
||
using (OracleConnection connection = new OracleConnection(condb))
|
||
{
|
||
command = new OracleCommand(sql, connection);
|
||
OracleDataAdapter adapter = new OracleDataAdapter(command);
|
||
OracleCommandBuilder cb = new OracleCommandBuilder(adapter);
|
||
adapter.Update(_TempTable);
|
||
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
//strError = " oracle保存表格错误!" + ex.Message;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|