Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/10/2015, 08:46
Avatar de alan_69niupi
alan_69niupi
 
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 12 años, 11 meses
Puntos: 17
Respuesta: Ejecutar GridView desde un botón en ASP.Net

Puedes hacer de la siguiente manera
Crear una clase donde tengas las propiedades que necesites que son los capos que necesitas mostrar
public class Alumno{
public AlumnoID{ get; set;}
public NombreAlumno { get; set;}
public CorreoAlumno { get; set;}
}

cada propiedad puede representar un campo en tu tabla alumnos, pones las propiedades que necesites para que muestren en el GridView

Ahora la consulta la puedes hacer de esta manera

public class ConsultasAlumnos{

public List<Alumno> Consultar(SQLConnection connection, Alumno alumno)
{//El SQLConnection lo puedes cambiar según el tipo de conexion a base de datos que uses
SqlCommand sqlCommand=null;
sqlCommand=connection.CreateCommand();
string qryConsulta=string.Empty;
qryConsulta+="ARMA TODO EL QRY QUE NECESITES";
//Por ejemplo "Select a.AlumnoId, b.CuentaAlumno, etc"
string qryWhere=string.Empty;
if(alumno!=null)
{
if(alumno.AlumnoID!=null)
{
qryWhere+="AND AlumnoID=@Alumno_ID";
SqlParameter sqlParameter=sqlCommand.CreateParameter();
sqlParamater.ParameterName="@Alumno_ID";
sqlParameter.Value=alumno.AlumnoID;
sqlParameter.DbType=DbType.Int32;
sqlCommand.Parameter.Add(sqlParameter);
}//Este if lo hace por cada propiedad para verificar tipo string en el if pones
// if(!string.IsNotNullOrEmpty(alumno.Nombre))
}
if(qryWhere.Length>0)
{
if (qryWhere.StartsWith("AND "))
{
qryWhere = qryWhere.Substring(4);
}
else
{
if (qryWhere.StartsWith("OR "))
{
qryWhere = qryWhere.Substring(3);
}
else
{
if (qryWhere.StartsWith(","))
{
qryWhere = qryWhere.Substring(1);
}
}
}
qryWhere= " WHERE " + qryWhere;
}
DataSet ds=new DataSet();
SqlDataAdapter adapter;
adapter.SelectCommand=sqlCommand;
sqlConsulta+=sqlWhere;
sqlCommand.CommanText=sqlConsulta;
sqlCommand.ExecuteNonQuery();
adapter.Fill(ds, "NombreDeTabla");//Es el nombre de la tabla que apareceta en el DataSet
//Hasta este punto puede asignar ese Data set al DataSource del GridView
//Si quieres convertirlo en una lista de alumno hacer lo siguiente

List<Alumno> lista=new List<Alumno>();
Alumno objetoAlumno;
foreach(DataRow row in ds.Table[0].Rows)
{
objetoAlumno=new Alumno();
if(!row.IsNull("AlumnoID")) //Esto es cada campo que hagas que aparezca en la consulta
objetoAlumno.AlumnoId=(Int32)Convert.ChangeType(ro w["AlumnoID"], typeof(Int32));
//Lo haces por cada propiedad de la clase Alumno que deben ser las mismas que los campos que solictas en el query
//Al terminar todos los campos
//Fijate bien del Casteo
lista.Add(objetoAlumno);
}
//Y al final
return lista
}
}


de esta manera obtienes un DataSet o una Lista de objeto que puedes asignar al DataSource del GridView.

Espero te sirva

Saludos!!!