g storedProcName, IDataParameter[] parameters, out int rowsAffected)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
int result;
iConn.Open();
using (SqlCommand sqlCmd = BuildIntCommand(iConn, storedProcName, parameters))
{
rowsAffected = sqlCmd.ExecuteNonQuery();
result = (int)sqlCmd.Parameters["ReturnValue"].Value;
if (iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
return result;
}
}
}
/**/
///
/// 创建 SqlCommand 对象实例(用来返回一个整数值)
///
/// 存储过程名
/// 存储过程参数
/// SqlCommand 对象实例
private SqlCommand BuildIntCommand(IDbConnection iConn, string storedProcName, IDataParameter[] parameters)
{
SqlCommand sqlCmd = BuildQueryCommand(iConn, storedProcName, parameters);
sqlCmd.Parameters.Add(new SqlParameter("ReturnValue",
SqlDbType.Int, 4, ParameterDirection.ReturnValue,
false, 0, 0, string.Empty, DataRowVersion.Default, null));
return sqlCmd;
}
private IDbCommand GetCommand(string Sql, IDbConnection iConn)
{
switch (this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlCommand(Sql, (SqlConnection)iConn);
case "Oracle":
return new System.Data.OracleClient.OracleCommand(Sql, (OracleConnection)iConn);
case "Access":
return new System.Data.OleDb.OleDbCommand(Sql, (OleDbConnection)iConn);
default:
return new System.Data.SqlClient.SqlCommand(Sql, (SqlConnection)iConn);
}
}
#endregion
}
}