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;
}
}
/**/
///
/// 执行存储过程
///
/// 存储过程名
/// 存储过程参数
/// os_Info执行信息
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;
}
}
/**/
///
/// 执行存储过程
///
/// 存储过程名
/// 表名
/// 存储过程参数
/// 返回记录集
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;
}
}
}
}