
14/12/2010, 10:39
|
| | Fecha de Ingreso: octubre-2010 Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 14 años, 4 meses Puntos: 2 | |
Respuesta: ¿Como Obtener datos de un IQueryable? Zorrila, primero lo que decis vos, cuando haces "fr.Colegios" estas haciendo referencia a toda la tabla colegios, es por eso que te trae todos los datos...
en la variable MyData tenes solo los nombres filtrados, esa es la coleccion que tenes que usar en el foreach.. Quedaria asi:
Dim Fr As New ContainerDataContext
Dim Mydata = From Col In Fr.COLEGIOs Where Col.NOMBRE = "nombre" Select Col
For Each Col As COLEGIO In Mydata
With Col
TxtNombreColegio.Text = Col.NOMBRE
End With
Next
despues, HFC, tenes varias opciones...
1) podes pedir todos los datos del usuario y la funcion te devolveria un objeto de la clase UsuariosBES
Dim DtsUs = From datosUs In tblUs.usuarioBEs _
Where datosUs.Cliente = pCuentaUs _
Select datosUs
2) podes dejar la funcion como esta, y usar esta funcion, a la cual le pasas el objeto y un string con el nombre del campo que queres..
public static object Eval(object objectToEval, string propertyToEval)
{
if (objectToEval.GetType().GetProperty(propertyToEval ) != null)
{
return objectToEval.GetType().GetProperty(propertyToEval) .GetValue(objectToEval, null);
}
else return null;
}
3) ahora bien, puede que necesites modificar esa coleccion, y no es posible modificar campos de variables anonimas, por lo que tenes que hacer que no sea anonima, creando una clase, y haciendo que el query te devuelva objetos de esa clase Asi:
public class Clientes
{
public string Cliente{get; set;}
public string Pass{get; set;}
}
Dim DtsUs = From datosUs In tblUs.usuarioBEs _
Where datosUs.Cliente = pCuentaUs _
Select new clientes(){datosUs.Cliente, datosUs.PASS}
Eso te devolveria una coleccion de Clientes que tiene las propiedades cliente y pass que podes usar a tu antojo.
Espero haber sido claro. Saludos |