none
Consulta en linq filtrando por rango de fechas RRS feed

  • Pregunta

  • Muy buenas,

    Estoy intentando realizar una consulta con linq que esta apuntando a una tabla de sql server 2005,

    el problema esta en que intento sacar solo aquellas filas que esten dentro de un rango fecha inicial y fecha final.

    La consulta que realizo es asi:

    linqsqlDataContext TB = new linqsqlDataContext();
    var consulta = from a in TB.C203_tblClientes where a.TRANSFINAL == 9030 &&
    a.TRANSFECHA > DateTime.Parse(txtFechaInicial.Text) &&
    a.TRANSFECHA < DateTime.Parse(txtFechaFinal.Text) select a;

    Pero no me da ningun resultado al buscar fichas que realmente estan entre esos rangos de fechas.

    El formato de la columna TRANSFECHA en el sql server es datetime y los txt que paso a datetime se escribe de esta manera:

    Fecha inicial: 01/01/2014

    Fecha final:19/11/2014

    Llevo 2 dias peleandome con esto que no tiene que ser nada complicado.

    Gracias de antemano, saludos.

    miércoles, 19 de noviembre de 2014 14:42

Respuestas

  • hola

    no puedes usar el Datetime.Parse() dentro de la instruccion linq, deberias convertir por fuera, ademas de usar parentesis

    DateTime inicio = DateTime.Parse(txtFechaInicial.Text);
    Datetime fin = DateTime.Parse(txtFechaFinal.Text);
    
    linqsqlDataContext TB = new linqsqlDataContext();
    
    var consulta = from a in TB.C203_tblClientes 
    					where a.TRANSFINAL == 9030 &&
    					((a.TRANSFECHA > inicio) && (a.TRANSFECHA < fin))
    				select a;

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta ErikNeller jueves, 20 de noviembre de 2014 9:21
    miércoles, 19 de noviembre de 2014 15:50

Todas las respuestas

  • hola

    no puedes usar el Datetime.Parse() dentro de la instruccion linq, deberias convertir por fuera, ademas de usar parentesis

    DateTime inicio = DateTime.Parse(txtFechaInicial.Text);
    Datetime fin = DateTime.Parse(txtFechaFinal.Text);
    
    linqsqlDataContext TB = new linqsqlDataContext();
    
    var consulta = from a in TB.C203_tblClientes 
    					where a.TRANSFINAL == 9030 &&
    					((a.TRANSFECHA > inicio) && (a.TRANSFECHA < fin))
    				select a;

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta ErikNeller jueves, 20 de noviembre de 2014 9:21
    miércoles, 19 de noviembre de 2014 15:50
  • Muchas gracias a los 2 he conseguido solucionarlo con la respuesta de Leandro.

    Saludos.

    jueves, 20 de noviembre de 2014 9:22