using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Data.SqlClient;
|
using System.Data;
|
using System.Windows.Forms;
|
|
namespace HuanXin.ERP
|
{
|
class ClsCN:IDisposable
|
{
|
private SqlConnection MainCn;//创建连接对象
|
SqlTransaction MainTran;
|
public string sServer;
|
public string sDataBase ;
|
public string sUser;
|
public string sPassword;
|
//开始事务
|
public void BeginTran()
|
{
|
if (!this.CnOpen())
|
return;
|
MainTran=MainCn.BeginTransaction();
|
}
|
//结束事务
|
public void Commit()
|
{
|
MainTran.Commit();
|
CnClose();
|
}
|
//回滚事务
|
public void RollBack()
|
{
|
MainTran.Rollback();
|
CnClose();
|
}
|
|
public ClsCN()
|
{
|
ClsIni oIni = new ClsIni();
|
sServer = oIni.ReadIni("Erp", "Server", "HXErp.ini");
|
sDataBase = oIni.ReadIni("Erp", "DataBase", "HXErp.ini");
|
sUser = oIni.ReadIni("Erp", "UserName", "HXErp.ini");
|
sPassword = oIni.ReadIni("Erp", "PassWord", "HXErp.ini");
|
}
|
|
public bool CheckOpen()
|
{
|
SqlConnection oCn = new SqlConnection("Data Source=" + sServer + ";DataBase=" + sDataBase + ";User ID=" + sUser + ";PWD=" + sPassword + " ");
|
try
|
{
|
oCn.Open();
|
return true;
|
}
|
catch (Exception e)
|
{
|
return false;
|
}
|
}
|
|
private bool CnOpen()//OPEN数据库连接
|
{
|
if (MainCn==null)
|
{
|
MainCn = new SqlConnection("Data Source="+ sServer +";DataBase=" + sDataBase + ";User ID=" + sUser + ";PWD=" + sPassword + " ");
|
}
|
if (MainCn.State == System.Data.ConnectionState.Closed)
|
{
|
try
|
{
|
MainCn.Open();
|
return true;
|
}
|
catch (Exception e)
|
{
|
return false ;
|
}
|
}
|
else
|
return true;
|
}
|
private void CnClose()//关闭数据库连接
|
{
|
if (MainCn != null)
|
MainCn.Close();
|
}
|
private void CnDispose()//释放资源
|
{
|
if(MainCn!=null)
|
{
|
MainCn.Dispose();
|
MainCn=null;
|
}
|
}
|
/// <summary>
|
/// 转换参数
|
/// </summary>
|
/// <param name="ParamName">存储过程名称或命令文本</param>
|
/// <param name="DbType">参数类型</param></param>
|
/// <param name="Size">参数大小</param>
|
/// <param name="Value">参数值</param>
|
/// <returns>新的 parameter 对象</returns>
|
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
|
{
|
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
|
}
|
/// <summary>
|
/// 初始化参数值
|
/// </summary>
|
/// <param name="ParamName">存储过程名称或命令文本</param>
|
/// <param name="DbType">参数类型</param>
|
/// <param name="Size">参数大小</param>
|
/// <param name="Direction">参数方向</param>
|
/// <param name="Value">参数值</param>
|
/// <returns>新的 parameter 对象</returns>
|
private SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
|
{
|
SqlParameter param;
|
if (Size > 0)
|
param = new SqlParameter(ParamName, DbType, Size);
|
else
|
param = new SqlParameter(ParamName, DbType);
|
param.Direction = Direction;
|
if (!(Direction == ParameterDirection.Output && Value == null))
|
param.Value = Value;
|
return param;
|
}
|
|
//public int RunProc(string procName,SqlParameter[] prams)
|
//{
|
// SqlCommand cmd = CreateCommand(procName, prams);
|
// if (cmd == null)
|
// return 0;
|
// cmd.ExecuteNonQuery();
|
// return (int)cmd.Parameters["ReturnValue"].Value;
|
//}
|
public int RunProc(string procName)
|
{
|
if (!this.CnOpen())
|
return 0;
|
SqlCommand cmd = new SqlCommand(procName, MainCn);
|
cmd.Transaction = MainTran;
|
cmd.ExecuteNonQuery();
|
return 1;
|
}
|
|
public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
|
{
|
SqlDataAdapter dap = CreateDataAdaper(procName, prams);
|
if (dap == null)
|
return null;
|
DataSet ds = new DataSet();
|
try
|
{
|
dap.Fill(ds, tbName);
|
return ds;
|
}
|
catch (Exception e)
|
{
|
//MessageBox.Show("读取失败,请与管理员联系!"+e.Message);
|
return null;
|
}
|
}
|
|
public DataSet RunProcReturn(string procName, string tbName)
|
{
|
SqlDataAdapter dap = CreateDataAdaper(procName, null);
|
DataSet ds = new DataSet();
|
try
|
{
|
dap.Fill(ds, tbName);
|
return ds;
|
}
|
catch (Exception e)
|
{
|
//MessageBox.Show("读取失败,请与管理员联系!" + e.Message);
|
return null;
|
}
|
}
|
|
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
|
{
|
if (this.CnOpen())
|
{
|
SqlDataAdapter dap = new SqlDataAdapter(procName, MainCn);
|
dap.SelectCommand.CommandType = CommandType.Text;
|
if (prams != null)
|
{
|
foreach (SqlParameter parameter in prams)
|
dap.SelectCommand.Parameters.Add(parameter);
|
}
|
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
|
ParameterDirection.ReturnValue, false, 0, 0,
|
string.Empty, DataRowVersion.Default, null));
|
return dap;
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
|
{
|
if (this.CnOpen())
|
{
|
SqlCommand cmd = new SqlCommand(procName, MainCn);
|
cmd.CommandType = CommandType.Text;
|
cmd.Transaction = MainTran;
|
if (prams != null)
|
{
|
foreach (SqlParameter parameter in prams)
|
cmd.Parameters.Add(parameter);
|
}
|
cmd.Parameters.Add(
|
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
|
ParameterDirection.ReturnValue, false, 0, 0,
|
string.Empty, DataRowVersion.Default, null));
|
return cmd;
|
}
|
else
|
return null;
|
}
|
|
#region IDisposable 成员
|
|
public void Dispose()
|
{
|
throw new Exception("The method or operation is not implemented.");
|
}
|
|
#endregion
|
}
|
}
|