none
BindingSourcer Find RRS feed

  • Pregunta

  • Hola tengo un datagridview el cual tengo una columna con el campo fecha y hora.

    Lo que quiero realizar es que cuando filtro el datagridview, posicione el curso en la fila de la fecha actual.

    He probado esto:

    bancosBindingSource.Position = bancosBindingSource.Find("fecha",DataTime.Now.ToString());

    Pero no me da ninguna posición, puede ser que no la de por la hora de ambas fechas?

    miércoles, 7 de enero de 2015 8:19

Todas las respuestas

  • Sí, puede ser.

    No conocemos el tipo de la comparación, si es Date o string

    bancosBindingSource.Position = bancosBindingSource.Find("fecha",DataTime.Now.ToString("dd/MM/yy"));
    
    bancosBindingSource.Position = bancosBindingSource.Find("fecha",DataTime.Now.Date);
    

    miércoles, 7 de enero de 2015 13:23
  • Aunque la corrección que hace Walter es buena, desgraciadamente el DGV no parece gustarle cambiar el CurrentCell cuando la posición del BindingManagerBase (que es del tipo CurrencyManager cuando son listas) cambia.  Lo sé por experiencia.  No hay forma que el CurrentCell cambie cambiando únicamente el Position.

    Le recomiendo entonces que en vez de setear el Position del BindingSource, setee el CurrentCell del DGV.  Si eso además no cambia el Position, entonces setee ambos (Position y CurrentCell).


    Jose R. MCP
    Code Samples

    miércoles, 7 de enero de 2015 14:34
    Moderador
  • Hola, ya he solucionado mi problema.

    El problema era que en mi DGV la fecha contenía también la hora y minutos, entonces al hacer el DateTime.Now no me devolvía ninguna fila, puesto que no coinciden la hora pero si la fecha.

    Lo he resuelto haciendo una consulta a la base de datos:

    string id = BD.ExecuteSQLGetString("select idbanco from bancos where fecha BETWEEN '"+ DateTime.Now.ToString() +"' AND '" + DateTime.Now.AddMonths(2).ToString()+ "'order by fecha", "*");
                int idposition;
                if(id!="*"){
                    idposition = int.Parse(id);
    
    
                    vistabancosBindingSource.Position = vistabancosBindingSource.Find("idbanco", idposition);
                }

    viernes, 9 de enero de 2015 11:08