Bueno, la recuperación de datos es através de una llamada a un SP, y obviamente, esto lo hace bien. Es similar a..
Código:
DataTable tbDatos = new DataTable();
DameDatos(ref tbDatos);
void DameDatos()
{
SqlParameters objParametros[2];
objParametros[0] = new SqlParameter(propiedades del constructor);
objParametros[0].Value = XXXX;
objParametros[1] = new SqlParameter(propiedades del constructor);
objParametros[1].Value = XXXX;
objParametros[2] = new SqlParameter(propiedades del constructor);
objParametros[2].Value = XXXX;
//Objeto ya hecho en la empresa:
gsAccesoDatos.RecuperarSP("cadenaConexion", ref tbDatos, "nombreSP", objParametros);
}
Es algo asi.