439 lines
14 KiB
C#
439 lines
14 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Data;
|
|||
|
|
using WMS.DBUtility;
|
|||
|
|
|
|||
|
|
using System.Data.SqlClient;
|
|||
|
|
using Oracle.ManagedDataAccess.Client;
|
|||
|
|
|
|||
|
|
namespace WMS.IData
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 数据处理类
|
|||
|
|
/// </summary>
|
|||
|
|
public class SystemDataObject
|
|||
|
|
{
|
|||
|
|
#region 数据处理类
|
|||
|
|
private static SystemDataObject dataObject;
|
|||
|
|
private static object _lock = new object();
|
|||
|
|
/// <summary>
|
|||
|
|
/// 通过Singleton模式返回当前数据访问层实例
|
|||
|
|
/// </summary>
|
|||
|
|
public static SystemDataObject Instance
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
if (dataObject == null)
|
|||
|
|
{
|
|||
|
|
lock (_lock)
|
|||
|
|
{
|
|||
|
|
if (dataObject == null)
|
|||
|
|
{
|
|||
|
|
dataObject = new SystemDataObject();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return dataObject;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
Model.Base.LogDataModel _logModel;
|
|||
|
|
/// <summary>
|
|||
|
|
/// 日志处理类
|
|||
|
|
/// </summary>
|
|||
|
|
public Model.Base.LogDataModel logModel
|
|||
|
|
{
|
|||
|
|
get { lock ("logModel") { return _logModel; } }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region 返回DataSet数据集
|
|||
|
|
/// <summary>
|
|||
|
|
/// 返回DataSet数据集
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataTable GetDataTable(string sqlStr)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
return GetDataTable(sqlStr, null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public DataSet GetDataSet(string sqlStr)
|
|||
|
|
{
|
|||
|
|
return GetDataSet(sqlStr, null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 返回DataSet数据集
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataSet GetDataSet(string sqlStr, OracleParameter[] param)
|
|||
|
|
{
|
|||
|
|
// _logModel = new Model.Base.LogDataModel();
|
|||
|
|
DataSet ds = new DataSet();
|
|||
|
|
// _logModel.SqlStr = sqlStr;
|
|||
|
|
// logModel.Operator_id = DataProvider.Instance.userNumber;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (param == null)
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataset(CommandType.Text, sqlStr);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataset(CommandType.Text,sqlStr, param);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
// _logModel.Content = "数据库连接错误" + ex.Message;
|
|||
|
|
|
|||
|
|
if (ex.Message.ToString().PadLeft(3).ToString().ToUpper() == "ORA")
|
|||
|
|
{
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
// DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
return null;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return ds;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 返回DataSet数据集
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataTable GetDataTable(string sqlStr, OracleParameter[] param)
|
|||
|
|
{
|
|||
|
|
// _logModel = new Model.Base.LogDataModel();
|
|||
|
|
DataTable ds = new DataTable();
|
|||
|
|
// _logModel.SqlStr = sqlStr;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (param == null)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
ds = OracleHelper.ExecuteDataTable(CommandType.Text, sqlStr);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataTable(CommandType.Text, sqlStr, param);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
// _logModel.Content = "数据库连接错误" + ex.Message;
|
|||
|
|
|
|||
|
|
WMS.Common.LogWriteText.WriteLog(ex.Message + ex.TargetSite);
|
|||
|
|
// DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
return null;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return ds;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 调用存储过程返回DataTable
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataTable GetDataTableProc(string sqlStr)
|
|||
|
|
{
|
|||
|
|
return GetDataTableProc(sqlStr, null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 调用存储过程返回DataTable
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataTable GetDataTableProc(string sqlStr, OracleParameter[] param)
|
|||
|
|
{
|
|||
|
|
// _logModel = new Model.Base.LogDataModel();
|
|||
|
|
DataTable ds = new DataTable();
|
|||
|
|
// _logModel.SqlStr = sqlStr;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (param == null)
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataTable(CommandType.StoredProcedure, sqlStr);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataTable(CommandType.StoredProcedure, sqlStr, param);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
// _logModel.Content = "数据库连接错误" + ex.Message;
|
|||
|
|
|
|||
|
|
if (ex.Message.ToString().PadLeft(3).ToString().ToUpper() == "ORA")
|
|||
|
|
{
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
WMS.Common.LogWriteText.WriteLog(ex.Message + ex.TargetSite);
|
|||
|
|
// DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
return null;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return ds;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 调用查询存储过程,并且记录错误日志
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <param name="errRow"></param>
|
|||
|
|
/// <param name="errMsg"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataTable GetDataTableProc(string sqlStr, OracleParameter[] param, int errRow, int errMsg)
|
|||
|
|
{
|
|||
|
|
// _logModel = new Model.Base.LogDataModel();
|
|||
|
|
DataTable ds = new DataTable();
|
|||
|
|
// _logModel.SqlStr = sqlStr;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (param == null)
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataTable(CommandType.StoredProcedure, sqlStr);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
ds = OracleHelper.ExecuteDataTable(CommandType.StoredProcedure, sqlStr, param);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
// _logModel.Content = "数据库连接错误" + ex.Message;
|
|||
|
|
|
|||
|
|
|
|||
|
|
// DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
return ds;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 执行sql语句返回执行语句的事务
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行sql语句返回执行语句的数量
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int ExecuteSqlCommit(string sqlStr, OracleParameter[] param)
|
|||
|
|
{
|
|||
|
|
int row = 0;
|
|||
|
|
// _logModel = new Model.Base.LogDataModel();
|
|||
|
|
// _logModel.SqlStr = sqlStr;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
row = OracleHelper.ExecuteNonQuery(CommandType.Text, sqlStr, param);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
// _logModel.Content = ex.Message;
|
|||
|
|
return row;
|
|||
|
|
}
|
|||
|
|
return row;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行sql语句返回执行语句的数量
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int ExecuteSqlCommit(string sqlStr)
|
|||
|
|
{
|
|||
|
|
int row = 0;
|
|||
|
|
// _logModel = new Model.Base.LogDataModel();
|
|||
|
|
// _logModel.SqlStr = sqlStr;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
row = OracleHelper.ExecuteNonQuery(CommandType.Text, sqlStr);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
// _logModel.Content = ex.Message;
|
|||
|
|
return row;
|
|||
|
|
}
|
|||
|
|
return row;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行sql语句返回执行语句的事务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public OracleTransaction ExecuteSql(string sqlStr, OracleParameter[] param)
|
|||
|
|
{
|
|||
|
|
_logModel = new Model.Base.LogDataModel();
|
|||
|
|
_logModel.SqlStr = sqlStr;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
OracleHelper.ExecuteNonQuery(DataProvider.Instance.TranOracle, CommandType.Text, sqlStr, param);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_logModel.Content = ex.Message;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return DataProvider.Instance.TranOracle;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行sql语句返回执行语句的事务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public OracleTransaction ExecuteSql(string sqlStr)
|
|||
|
|
{
|
|||
|
|
_logModel = new Model.Base.LogDataModel();
|
|||
|
|
_logModel.SqlStr = sqlStr;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
OracleHelper.ExecuteNonQuery(DataProvider.Instance.TranOracle, CommandType.Text, sqlStr);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_logModel.Content = ex.Message;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return DataProvider.Instance.TranOracle;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行sql语句,返回执行语句的事务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <param name="errNum"></param>
|
|||
|
|
/// <param name="errMsg"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public OracleTransaction ExecuteProc(string sqlStr, OracleParameter[] param, int errNum, int errMsg)
|
|||
|
|
{
|
|||
|
|
_logModel = new Model.Base.LogDataModel();
|
|||
|
|
_logModel.SqlStr = sqlStr;
|
|||
|
|
//logModel.Operator_id = DataProvider.Instance.userNumber;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
OracleHelper.ExecuteNonQuery(DataProvider.Instance.TranOracle, CommandType.StoredProcedure, sqlStr, param);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_logModel.Content = ex.Message;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return DataProvider.Instance.TranOracle;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
#region
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行sql语句集合,返回执行语句的事务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="param"></param>
|
|||
|
|
/// <param name="errNum"></param>
|
|||
|
|
/// <param name="errMsg"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public OracleTransaction ExecuteList(List<string> sqllist, List<OracleParameter[]> OracleParameters)
|
|||
|
|
{
|
|||
|
|
_logModel = new Model.Base.LogDataModel();
|
|||
|
|
string errstr = "";
|
|||
|
|
StringBuilder sqlstr = new StringBuilder();
|
|||
|
|
foreach (string t in sqllist)
|
|||
|
|
{
|
|||
|
|
sqlstr.Append(t + ";");
|
|||
|
|
}
|
|||
|
|
_logModel.SqlStr = sqlstr.ToString();
|
|||
|
|
//logModel.Operator_id = DataProvider.Instance.userNumber;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
OracleHelper.ExecuteNonSQLList(CommandType.Text, sqllist, OracleParameters, ref errstr);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_logModel.Content = ex.Message;
|
|||
|
|
DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return DataProvider.Instance.TranOracle;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public OracleTransaction ExecuteList(List<string> sqllist, ref string str_msg)
|
|||
|
|
{
|
|||
|
|
_logModel = new Model.Base.LogDataModel();
|
|||
|
|
string errstr = "";
|
|||
|
|
StringBuilder sqlstr = new StringBuilder();
|
|||
|
|
foreach (string t in sqllist)
|
|||
|
|
{
|
|||
|
|
sqlstr.Append(t + ";");
|
|||
|
|
}
|
|||
|
|
_logModel.SqlStr = sqlstr.ToString();
|
|||
|
|
//logModel.Operator_id = DataProvider.Instance.userNumber;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
OracleHelper.ExecuteNonSQLList(CommandType.Text, sqllist, ref errstr);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
str_msg = ex.Message;
|
|||
|
|
_logModel.Content = ex.Message;
|
|||
|
|
DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return DataProvider.Instance.TranOracle;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
///// <summary>
|
|||
|
|
///// 执行sql语句集合,返回执行语句的事务
|
|||
|
|
///// </summary>
|
|||
|
|
///// <param name="sqlStr"></param>
|
|||
|
|
///// <returns></returns>
|
|||
|
|
public OracleTransaction ExecuteList(List<string> sqllist)
|
|||
|
|
{
|
|||
|
|
_logModel = new Model.Base.LogDataModel();
|
|||
|
|
string errstr = "";
|
|||
|
|
StringBuilder sqlstr = new StringBuilder();
|
|||
|
|
foreach (string t in sqllist)
|
|||
|
|
{
|
|||
|
|
sqlstr.Append(t + ";");
|
|||
|
|
}
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
OracleHelper.ExecuteNonSQLList(CommandType.Text, sqllist, ref errstr);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_logModel.Content = ex.Message;
|
|||
|
|
DataProvider.Instance.ErrLog.InsertLog(_logModel);
|
|||
|
|
}
|
|||
|
|
return DataProvider.Instance.TranOracle;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
}
|