Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    StringBuilder e selezione anno

    Devo effettuare un filtro nel DataView su una serie di campi;
    tra questi campi ho anche un "dataconsegna", dovrei però effettuare il
    filtro sull'anno del campo data (e non su tutta la data), dato che la mia variabile @Anno contiene un valore del tipo: 2004

    ...
    sb.Append("*') AND (year(dataconsegna) = ");

    sb.Append(@Anno);

    sb.Append(")");


    In questo modo ottengo errore: non mi viene nemmeno visualizzato il DataGrid, se invece tolgo year() visualizzo correttamente il DataGrid.


    Ho provato a visualizzare col Debugger la stringa sb che passo al filter del DataView:

    "(campo1 LIKE '**') AND (campo2 LIKE '') AND (campo3 LIKE '**') AND
    (year(dataconsegna) = 2004)"

    dove il campo dataconsegna del DB Access è tipo Data


    Dove sbaglio?
    Iceberg

  2. #2
    editato, sono un fagiano

  3. #3

  4. #4
    Originariamente inviato da iceberg
    avevo visto una parentesi in meno ma non era vero e ho editato la risposta

    visto cosi sembra tutto giusto, non saprei dirti

  5. #5
    ahhh non avevo capito

    penso di risolvere il problema cambiando la select iniziale
    Iceberg

  6. #6
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Il RowFilter del DataView non chiede al DBMS di filtrare i risultati, ma valuta l'espressione di filtro a runtime e lo applica ai dati presenti in memoria; per questo motivo è abbastanza limitato e non ha funzioni quali la year.

    L'unico modo che hai è aggiungere una colonna al set di risultati contenente i valori della funzione year(dataconsegna) e poi filtrare su quelli.

    Ad esempio se la tua query attuale è:
    SELECT campo1, campo2, campo3, dataconsegna FROM consegne

    dovrà diventare

    SELECT campo1, campo2, campo3, dataconsegna, year(dataconsegna) AS annoconsegna FROM consegne

    e di conseguenza la stringa usata per filtrare:
    "AND annoconsenga = " + @Anno

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  7. #7
    Stavo proprio seguendo questa strada


    grazie 1000
    Iceberg

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.