onnectionState.Closed)
{
iConn.Close();
}
}
}
}
}
/**/
///
/// 执行多条SQL语句,实现数据库事务。
///
/// SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])
public void ExecuteSqlTran(Hashtable SQLStringList)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
using (IDbTransaction iTrans = iConn.BeginTransaction())
{
System.Data.IDbCommand iCmd = GetCommand();
try
{
//循环
foreach (DictionaryEntry myDE in SQLStringList)
{
string cmdText = myDE.Key.ToString();
IDataParameter[] iParms = (IDataParameter[])myDE.Value;
PrepareCommand(out iCmd, iConn, iTrans, cmdText, iParms);
int val = iCmd.ExecuteNonQuery();
iCmd.Parameters.Clear();
}
iTrans.Commit();
}
catch
{
iTrans.Rollback();
throw;
}
finally
{
iCmd.Dispose();
if (iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}
/**/
///
/// 执行一条计算查询结果语句,返回查询结果(object)。
///
/// 计算查询结果语句
/// 查询结果(object)
public object GetSingle(string SQLString, params IDataParameter[] iParms)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
System.Data.IDbCommand iCmd = GetCommand();
{
try
{
PrepareCommand(out iCmd, iConn, null, SQLString, iParms);
object obj = iCmd.ExecuteScalar();
iCmd.Parameters.Clear();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
iCmd.Dispose();
if (iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}
/**/
///
/// 执行查询语句,返回IDataReader
///
/// 查询语句
/// IDataReader
public IDataReader ExecuteReader(string SQLString, params IDataParameter[] iParms)
{
System.Data.IDbConnection iConn = this.GetConnection();
{
System.Data.IDbCommand iCmd = GetCommand();
{
try
{
PrepareCommand(out iCmd, iConn, null, SQLString, iParms);
System.Data.IDataReader iReader = iCmd.ExecuteReader();
iCmd.Parameters.Clear();
return iReader;
}
catch (System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
iCmd.Dispose();
if (iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}
/**/
///
/// 执行查询语句,返回DataSet
///
/// 查询语句
/// DataSet
public DataSet Query(string sqlString, params IDataParameter[] iParms)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
IDbCommand iCmd = GetCommand();
{
PrepareCommand(out iCmd, iConn, null, sqlString, iParms);
try
{
IDataAdapter iAdapter = this.GetAdapater(sqlString, iConn);
DataSet ds = new DataSet();
iAdapter.Fill(ds);
iCmd.Parameters.Clear();
return ds;
}
catch (System.Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
iCmd.Dispose();
if (iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}
/**/
///
/// 初始化Command
///
///
///
///
///
///
private void PrepareCommand(out IDbCommand iCmd, IDbConnection iConn, System.Data.IDbTransaction iTrans, string cmdText, IDataParameter[] iParms)
{
if (iConn.State != ConnectionState.Open)
iConn.Open();
iCmd = this.GetCommand();
iCmd.Connection = iConn;
iCmd.CommandText = cmdText;
if (iTrans != null)
iCmd.Transaction = iTrans;
iCmd.CommandType = CommandType.Text;//cmdType;
if (iParms != null)
{
foreach (IDataParameter parm in iParms)
iCmd.Parameters.Add(parm);
}
}
#endregion
#region 存储过程操作
/**/
///
/// 执行存储过程
///
/// 存储过程名
/// 存储过程参数
/// SqlDataReader
public SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
{
System.Data.IDbConnection iConn = this.GetConnection();