GetPLC_Data/UpdateMeter/DataBaseTools.cs
2025-11-08 08:17:36 +08:00

434 lines
15 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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