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