348 messaggi dal 10 marzo 2013
Ciao a tutti ho bisogno ancora del vostro aiuto.

In un una pate della mia applicazione ho bisogno di effetuare una ricerca oltre che per nome e cognome (cosa che ho risolto), anche per intervallo di data cosi come da titolo.
Tra le varie ricerche ho trovato la clausola between che, usata in SQL fa a caso mio.
Ma ho bisogno di fare la stessa cosa con asp.net tra i vari tenativi che ho fatto è venuto fuori questo codice:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="StoricoProfSource">
<Columns>
<asp:BoundField DataField="R_Cognome" HeaderText="R_Cognome" SortExpression="R_Cognome" />
<asp:BoundField DataField="R_Nome" HeaderText="R_Nome" SortExpression="R_Nome" />
<asp:BoundField DataField="Descrizione" HeaderText="Descrizione" SortExpression="Descrizione" />
<asp:BoundField DataField="P_Cognome" HeaderText="P_Cognome" SortExpression="P_Cognome" />
<asp:BoundField DataField="P_Nome" HeaderText="P_Nome" SortExpression="P_Nome" />
<asp:BoundField DataField="Sigla" HeaderText="Sigla" SortExpression="Sigla" />
<asp:BoundField DataField="DataCertificazione" HeaderText="DataCertificazione" SortExpression="DataCert" />
</Columns>
<HeaderStyle BackColor="#0066FF" ForeColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="StoricoProfSource" runat="server"
ConnectionString="<%$ ConnectionStrings:EsaWebConnectionString %>"
SelectCommand="SELECT [R_Cognome], [R_Nome], [Descrizione], [P_Cognome], [P_Nome], [Sigla] FROM [V_BrevettiConsegnatiRec] WHERE (([P_Nome] = @P_Nome) AND ([P_Cognome] = @P_Cognome) BETWEEN ([DataCertificazione] = @DataCertificazione)) ">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox2" Name="P_Nome" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TextBox1" Name="P_Cognome" PropertyName="Text" Type="String" />
</SelectParameters>

</asp:SqlDataSource>

Ma l'errore è il seguente, sicuramente between in asp non va usato cosi:

"Sintassi non corretta in prossimità della parola chiave 'BETWEEN'."

Grazie a tutti
Saluti Mario

89 messaggi dal 13 aprile 2004
L'errore ti indica che ciò che è sbagliato le la parte relativa al BETWEEN. La sintassi della clausola BETWEEN è

<Nome campo> BETWEEN <valore1> AND <valore2>

dove valore1 deve essere minore di valore2. Da notare che i due valori posso essere più tipi.

Nel tuo caso dovrebbe essere qualcosa del tipo:

SelectCommand="SELECT [R_Cognome], [R_Nome], [Descrizione], [P_Cognome], [P_Nome], [Sigla] FROM [V_BrevettiConsegnatiRec] WHERE [P_Nome] = @P_Nome AND [P_Cognome] = @P_Cognome AND [DataCertificazione] BETWEEN @DataCertificazione_Da AND @DataCertificazione_A"

mentre tra i parametri dovresti passare anche DataCertificazione_Da e DataCertificazione_A.
Attenzione con le date perchè il confronto non è banale in SQL-Server o meglio funziona con date della forma "YYYY-MM-DD" oppure "YYYYMMDD", mentre nel caso di date nella forma "GG/MM/AAAA" non le gestisce correttamente e per utilizzarle devi utilizare la funzione CONVERT o CAST a DATETIME.
348 messaggi dal 10 marzo 2013
Ciao e grazie per i tuoi preziosi suggerimenti.

Messo in pratica e tutto funziona alla perfezione.

Grazie Ancora

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.