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; } } } }