Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/02/2007, 00:37
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 1 mes
Puntos: 98
Re: Ayuda con Aplicacion a N capas

Bueno, abundando un poco en lo que dice .seb; hay muchas maneras de lograrlo, una es filtrando los objectdatasource, probablemente la que yo haria seria traer nada más los registros que necesite y esto se logra modificando un poco tu query, podrías por ejemplo agregar un argumento a tu método y en base a este/os argumentos construír el query, no se, a mi por ejemplo me gustaría regresar un DataView:

Código:
public DataView List(string ciudad, string estado)
{
   StringBuilder query = new StringBuilder();
   int argCount = 0;
    
   query.Append("SELECT * FROM tabla ");

   if ( ciudad.Length > 0 )
   {
      if ( argCount > 0 )
         query.Append(" AND ");
      else
         query.Append(" WHERE ")
     
      query.Append(" tabla_ciudad = @ciudad ");
      argCount++;
   }
   
   if ( estado.Length > 0 )
   {
      if ( argCount > 0  )
          query.Append(" AND ");
     else
         query.Append(" WHERE ");
    
    query.Append(" campo_estado = @estado ");
    argCount++;
   }

  .
  .
  .
}

Algo así es la idea, desde luego que quizás basado en esos argumentos, podrías traer todos los registros y quizás utilizar el método filter del dataview para filtrarlo, podrías quizás crear sendas propiedades públicas y privadas de filtro en la clase.

Código:
//en el evento de tu form que se encargue de hacer la consulta
Clase objeto = new Clase();

//llamada por argumentos
objeto.List(textbox.text, textbox2.text);

//si tuvieramos una propiedad filtro
objeto.filtro = textbox.text;
dataView = objeto.List();
Y asi podria haber un sinfin de soluciones, lo importante en este caso es que tu clase actue como una caja negra, a la capa que se encarga de comunicarse con tu capa de datos no le interesa como lo hace, solo le interesa que lo haga.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway