Visualizzazione dei risultati da 1 a 6 su 6

Discussione: SQL-campi di ricerca

  1. #1

    SQL-campi di ricerca

    Ciao a tutti,
    è la prima volta che uso un forum, quindi scusate per eventuali problemi.
    Il problema che ho è questo:
    ho creato 2 textbox 'TIPO' e 'NOME_VIA' per effettuare una ricerca in un DBAccess; il risultato lo ottengo solo se compilo i 2 campi. Esiste un comando SQL per poter ottenere il risultato senza dover compilare contemporaneamente i 2 campi?
    Il codice scritto è il seguente:
    SELECT * FROM [Allacci in fognatura] WHERE (([ LIKE '%' + ? + '%') AND ([] LIKE '%' + ? + '%')).

    Grazie

  2. #2
    Credo che il tuo problema sia nel WHERE, più precisamente puoi provare a cambiare AND in OR.
    Ciao.

  3. #3
    Ciao peppeocchi, grazie per la risposta ma ho già provato è nn funziona, ti allego il codice modificato:
    'SELECT [NOME_VIA], [CIVICO] FROM [Allacci in fognatura] WHERE (([NOME_VIA] LIKE '%' + ? + '%') OR ([CIVICO] LIKE '%' + ? + '%'))'.

    Ti spiego meglio quello che ho fatto:
    i due form fanno parte di una pagina web da cui eseguo una ricerca in un DBACCESS, i cui risultati vengono visualizzati in un GRIDVIEW.

    Se ti può essere utile ti scrivo tutto il listato della pagina:
    "<form id="form1" runat="server">
    <div>

    <asp:Label ID="Label1" runat="server" Text="VIa"></asp:Label>



    <asp:TextBox ID="stNome" runat="server"></asp:TextBox>


    <asp:Label ID="Label2" runat="server" Text="Civico"></asp:Label>


    <asp:TextBox ID="stCivico" runat="server"></asp:TextBox>




    <asp:Button ID="Btnricerca" runat="server" Text="cerca" />






    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataSourceID="SqlDataSource1">
    <Columns>
    <asp:BoundField DataField="NOME_VIA" HeaderText="NOME_VIA"
    SortExpression="NOME_VIA" />
    <asp:BoundField DataField="CIVICO" HeaderText="CIVICO"
    SortExpression="CIVICO" />
    </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>"
    ProviderName="<%$ ConnectionStrings:ConnectionString2.ProviderName %>"

    SelectCommand="SELECT [NOME_VIA], [CIVICO] FROM [Allacci in fognatura] WHERE (([NOME_VIA] LIKE '%' + ? + '%') OR ([CIVICO] LIKE '%' + ? + '%'))">
    <SelectParameters>
    <asp:ControlParameter ControlID="stNome" Name="NOME_VIA" PropertyName="Text"
    Type="String" />
    <asp:ControlParameter ControlID="stCivico" Name="CIVICO" PropertyName="Text"
    Type="String" />
    </SelectParameters>
    </asp:SqlDataSource>


    </div>
    </form>
    "

  4. #4
    Sinceramente non ho idea di come funzioni access, nè tantomento asp (ho sempre programmato in php/mysql).
    Cioè, fammi capire, l'utente inserendo uno dei due campi deve avere come risultato anche il campo che non ha compilato?

    Puoi provare a dare un valore di default ad entrambi i campi, in modo che vengano interpretati come campi compilati. Forse però troveresti più aiuto su un forum specifico asp.

  5. #5
    No, cerco di spiegarmi meglio:
    se l'utente compila tutti i campi ottiene il risultato ne gridview, se ne compila solo uno nn si riescono a trovare risultati e io vorrei che anche la compilazione di un solo campo dia il risultato.
    Grazie

    P.S.
    provo ad andare nel forum di asp.net

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao,

    io penso che il problema sia una questione di valore null.

    credo che potresti risolvere tranquillamente distinguendo in tre casi:
    codice:
    if campo1 <> vuoto and campo2 <> vuoto
    MiaSelect:='SELECT [NOME_VIA], [CIVICO] FROM [Allacci in fognatura] WHERE (([NOME_VIA] LIKE '%' + ? + '%') OR ([CIVICO] LIKE '%' + ? + '%'))'.
    end
    
    if campo1 = vuoto and campo2 <> vuoto
    MiaSelect:='SELECT [NOME_VIA], [CIVICO] FROM [Allacci in fognatura] WHERE ([CIVICO] LIKE '%' + ? + '%'))'.
    end
    
    if campo1 <> vuoto and campo2 = vuoto
    MiaSelect:='SELECT [NOME_VIA], [CIVICO] FROM [Allacci in fognatura] WHERE (([NOME_VIA] LIKE '%' + ? + '%'))'.
    end
    cioa

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.