BaoKai_202508_Wms_Jingwang_.../WMS.IData/SystemDataObject.cs
2025-08-24 21:52:42 +08:00

439 lines
14 KiB
C#
Raw Permalink 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 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
}
}