Hola expertos colegas, me gustaría saber cual es la mejor y mas eficiente forma de obtener información de una base de datos en DataTabe.
Desde Windows form yo tengo esto:
Código:
Aquí creo los parámetros
SqlParameter sqlPram1 = new SqlParameter("@Param1", "ValorParam1");
SqlParameter sqlPram2 = new SqlParameter("@Param2", "ValorParam2");
List<SqlParameter> List = new List<SqlParameter>();
List.Add(sqlPram1);
List.Add(sqlPram2);
Invoco al procedimiento y le mando el Stored y la Lista de parametros
DataTable dt = ObtenerDatosComoDataTable("spGet ", List.ToArray());
Este es mi procedimiento:
Código:
public DataTable ObtenerDatosComoDataTable(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 ex;
}
}
Me funciona bien pero quiero saber si dentro de las mejores practicas existe algo mejor utilizando algún otra metodología, quizás XML o algo por el estilo, o no se, ustedes expertos recomiéndenme.
Gracias.