Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Como Obtener datos de un IQueryable?

Estas en el tema de ¿Como Obtener datos de un IQueryable? en el foro de .NET en Foros del Web. Hola a todos, Tengo esta funcion que me regresa un IQueryable, y si me regresa los 2 datos en un tipo de dato que dice ...
  #1 (permalink)  
Antiguo 16/11/2010, 12:11
HFC
 
Fecha de Ingreso: julio-2010
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
¿Como Obtener datos de un IQueryable?

Hola a todos,

Tengo esta funcion que me regresa un IQueryable, y si me regresa los 2 datos en un tipo de dato que dice ser anonimo,

Public Function DatosUsuario(ByVal pCuentaUs As String) As IQueryable

Dim tblUs As New lqUsuarioDataContext

Dim DtsUs = From datosUs In tblUs.usuarioBEs _
Where datosUs.Cliente = pCuentaUs _
Select datosUs.Cliente, datosUs.PASS

Return DtsUs

End Function

Pero ¿como obtengo los 2 datos de la variable: "objUs" ??

Dim objUs As IQueryable
objUs = DatosUsuario("hfc")

Us = objUs. '<- ?? duda
Pss = ObUs. '<- ?? duda


Si le doy QuickWatch alli estan los valores en la variable objUs, pero no logro obtenerlos.

Gracias de antemano.
  #2 (permalink)  
Antiguo 24/11/2010, 14:50
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 16 años
Puntos: 0
Respuesta: ¿Como Obtener datos de un IQueryable?

Hola amigos tambien estoy intentando obtener varios datos de mi bd tengo esto:

Dim Fr As New ContainerDataContext
Dim Mydata = From Col In Fr.tabla Where Col.NOMBRE = "nombre" Select Col.NOMBRE
For Each Col As COLEGIO In Fr.COLEGIOs
With Col
TxtNombreColegio.Text = Col.NOMBRE
End With
Next

Esto me trate todos los datos de tabla, no esta tomando el cuenta el where. necesito ayuda....
  #3 (permalink)  
Antiguo 14/12/2010, 10:39
 
Fecha de Ingreso: octubre-2010
Ubicación: Cordoba, Argentina
Mensajes: 40
Antigüedad: 13 años, 6 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:46.