///
/// ///
///
///
public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters) ...{
if( transaction == null ) throw new ArgumentNullException( \ if( transaction != null && transaction.Connection == null ) throw new ArgumentException( \transaction was rollbacked or commited, please provide an open transaction.\
// 创建SqlCommand命令,并进行预处理 SqlCommand cmd = new SqlCommand();
bool mustCloseConnection = false;
PrepareCommand(cmd, transaction.Connection, transaction, commandText, commandParameters, out mustCloseConnection );
// 执行SqlCommand命令,并返回结果. object retval = cmd.ExecuteScalar();
// 清除参数,以便再次使用. cmd.Parameters.Clear(); return retval; }
/**////
/// 执行指定数据库事务的命令,指定参数值,返回结果集中的第一行第一列.
/// ///
/// 此方法不提供访问存储过程输出参数和返回值参数. ///
/// 示例:
commandType,
/// int orderCount = (int)ExecuteScalar(trans, \ ///
/// ///
/// ///
public static object ExecuteScalar(SqlTransaction transaction, string spName, params object[] parameterValues) ...{
if( transaction == null ) throw new ArgumentNullException( \ if( transaction != null && transaction.Connection == null ) throw new ArgumentException( \transaction was rollbacked or commited, please provide an open transaction.\
if( spName == null || spName.Length == 0 ) throw new ArgumentNullException( \
// 如果有参数值 if ((parameterValues != null) && (parameterValues.Length > 0)) ...{
// PPull the parameters for this stored procedure from the parameter cache () SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
// 给存储过程参数赋值
AssignParameterValues(commandParameters, parameterValues);
// 调用重载方法
return ExecuteScalar(transaction, CommandType.StoredProcedure, spName, commandParameters); }
else ...{
// 没有参数值
return ExecuteScalar(transaction, CommandType.StoredProcedure, spName); } }
#endregion ExecuteScalar
ExecuteXmlReader XML阅读器#region ExecuteXmlReader XML阅读器
/**////
/// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回.
/// ///
/// XmlReader r = ExecuteXmlReader(conn, CommandType.StoredProcedure, \
///
///
/// ///
///
public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText) ...{
// 执行参数为空的方法 return (SqlParameter[])null); }
/**////
/// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数. /// ///
/// XmlReader r = ExecuteXmlReader(conn, CommandType.StoredProcedure, \ ///
///
/// ///
///
///
public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters) ...{
if( connection == null ) throw new ArgumentNullException( \
bool mustCloseConnection = false;
// 创建SqlCommand命令,并进行预处理 SqlCommand cmd = new SqlCommand(); try
...{
PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection );
// 执行命令
XmlReader retval = cmd.ExecuteXmlReader();
// 清除参数,以便再次使用. cmd.Parameters.Clear();
ExecuteXmlReader(connection,
commandType,
commandText,
return retval;
} catch ...{
if( mustCloseConnection ) connection.Close(); throw; } }
/**////
/// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数值. ///
///
/// 此方法不提供访问存储过程输出参数和返回值参数. ///
/// 示例:
/// XmlReader r = ExecuteXmlReader(conn, \ ///
///
/// ///
public static XmlReader ExecuteXmlReader(SqlConnection connection, string spName, params object[] parameterValues) ...{
if( connection == null ) throw new ArgumentNullException( \
if( spName == null || spName.Length == 0 ) throw new ArgumentNullException( \
// 如果有参数值
if ((parameterValues != null) && (parameterValues.Length > 0)) ...{
// 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. () SqlParameter[]
commandParameters
=
SqlHelperParameterCache.GetSpParameterSet(connection, spName);
// 给存储过程参数赋值
AssignParameterValues(commandParameters, parameterValues);
// 调用重载方法 return
ExecuteXmlReader(connection,
CommandType.StoredProcedure,
spName, commandParameters); } else ...{
// 没有参数值 return spName); } }
/**////
/// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回.
/// ///
/// XmlReader r = ExecuteXmlReader(trans, CommandType.StoredProcedure, \
///
///
/// ///
///
public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText) ...{
// 执行参数为空的方法
return ExecuteXmlReader(transaction, (SqlParameter[])null); }
/**////
/// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数. ///
///
/// XmlReader r = ExecuteXmlReader(trans, CommandType.StoredProcedure, \
///
///
/// ///
commandType,
commandText,
ExecuteXmlReader(connection,
CommandType.StoredProcedure,