Obtener Datos Como DataTable en C#
Con esta clase podemos ejecutar un Procedimiento Almacenado enviándole “N” parámetros en un arreglo.
/// <summary>
/// Obtiene un DataTable apartir del Procedimiento Almacenado proporcionado utilizando los parámetros correspondientes.
/// </summary>
/// <param name=”mSqlCnn”>Conexión a Base de Datos</param>
/// <param name=”NombreProcedimientoAlmacenado”>Nombre del Procdimiento Almacenado a Ejecutar</param>
/// <param name=”Parametros”>Parametro(s) usados en el procedimiento almacenado.</param>
/// <returns></returns>
public DataTable ObtenerDatosComoDataTable(SqlConnection mSqlCnn, string NombreProcedimientoAlmacenado, SqlParameter[] Parametros)
{
SqlCommand sqlCmd;
SqlDataAdapter sqlAdp;
DataTable sqlTbl;
sqlCmd = new SqlCommand();
sqlAdp = new SqlDataAdapter(sqlCmd);
try
{
if ((mSqlCnn != null) && mSqlCnn.State != ConnectionState.Open)
{
mSqlCnn.Open();
}
sqlCmd.CommandText = NombreProcedimientoAlmacenado;
sqlCmd.Connection = mSqlCnn;
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddRange(Parametros);
sqlTbl = new DataTable();
sqlAdp.Fill(sqlTbl);
return sqlTbl;
}
catch (Exception ex)
{
throw new Exception(NombreModulo + “.ObtenerDatosComoDataTable “ + ” – “ + ex.Source + ” – “ + ex.Message);
}
finally
{
if ((mSqlCnn != null) & mSqlCnn.State == ConnectionState.Open)
{
mSqlCnn.Close();
}
if ((sqlCmd != null))
{
sqlCmd.Dispose();
}
if ((sqlAdp != null))
{
sqlAdp.Dispose();
}
}
}
A esta Clase le mandamos los parametros de la siguiente manera:
SqlParameter sqlPram1 = new SqlParameter(“@Param1″, “Valor1″);
SqlParameter sqlPram2 = new SqlParameter(“@Param2″, “Valor2″);
List<SqlParameter> Param = new List<SqlParameter>();
Param.Add(sqlPram);
Param.Add(sqlPram1);
DataTable dtProcesos = ObtenerDatosComoDataTable(mSqlCnn , “StoredProcedure”, Param.ToArray());
“@Param1″ = Son los nombres de los parametros del SP.
mSqlCnn = Es la conexión que le debemos de enviar al SP.
“StoredProcedure” = Es el nombre del Stored Procedure que vamos a ejecutar.
Y es todo, nos regresara un DataTable con la informacion que arroje el Stored Procedure.
A quien le sirva deje su comentario.
Saludos.