Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [MS SQL] Doppio filtro

  1. #1

    [MS SQL] Doppio filtro

    Ciao a tutti, piccolo problemino con una query sql, sono su Visual Web Developer ecco l'istruzione:

    SELECT Attrezzature.Id_Attrezzatura, Attrezzature.Marca, Attrezzature.Modello, Tipi.Tipologia, Attrezzature.Prezzo_acquisto, Attrezzature.Data_acquisto, Attrezzature.Descrizione, Attrezzature.Abilitato, Attrezzature.Id_Tipo, (SELECT Tipi.Tipologia WHERE (Attrezzature.Id_Tipo = Tipi.Id_Tipo)) AS Expr1, Attrezzature.Id_Fornitore, Attrezzature.Id_BollaAcquisti FROM Attrezzature INNER JOIN Tipi ON Attrezzature.Id_Tipo = Tipi.Id_Tipo

    WHERE

    (Attrezzature.Id_Tipo = @Id_Tipo OR @Id_Tipo IS NULL) AND (Attrezzature.Marca = @Marca OR @Marca IS NULL)

    ORDER BY Attrezzature.Id_Attrezzatura DESC

    Quando la testo sul db funziona, ma dall'applicazione asp.net non fa il filtro sul primo parametro
    senza inserire anche il secondo.

    Id_Tipo è una dropdownlist
    Marca è un campo testo

    se tolgo il filtro della marca funziona, se li emtto entrambi gira solamente se li compilo tutti e due o se compilo solo il secondo, come se gli dasse fastidio la dropdownlist.

    chi può aiutarmi?

  2. #2
    quando NON selezioni, non devi passare il dato alla query! e visto che ci sei, posta TUTTA la sp! (e due)

  3. #3
    non ho più una sp è sparata così dentero la gridview

  4. #4
    e come gli passi i vari paramerti @qualcosa?

  5. #5
    come ti avevo detto sono nuovo del programma, quindi è facile che proprio in questa fase io abbia utilizzato qualche metodo non proprio esatto per fare questa applicazione, comunque il parametro @Id_Tipo viene da una dropdownlist, mentre il @marca viene da una textbox.
    Ho creato un Sql Data Source associata ad una gridview, con le istruzioni che ti ho dato prima.
    Potrei dire un sacco di stupidaggini ma ti ripeto sto imparando!

  6. #6
    più che altro sei evasivo postare qualche riga di programma no, eh? e comunque mi pare più un problema di programmazione vb che di database...

  7. #7
    il codice della Gridview, eccolo con la drop e la textbox sopra.

    <aspropDownList ID="DropDownList3" runat="server" AutoPostBack="True"
    DataSourceID="SqlDataSource3" DataTextField="Tipologia"
    DataValueField="Id_Tipo">
    </aspropDownList>
    <span class="style16">
    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    <input id="Submit1" type="submit" value="submit" /></span>

    <span class="style16">Ultime attrezzature inserite

    </span>

    [/i][/b]<asp:GridView
    ID="GridView1" runat="server" AllowPaging="True"
    AllowSorting="True" AutoGenerateColumns="False" CellPadding="4"
    DataKeyNames="Id_Attrezzatura" DataSourceID="SqlDataSource1"
    EmptyDataText="Nessun record di dati da visualizzare." ForeColor="#333333"
    GridLines="None" Width="913px" PageSize="5">
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    <Columns>
    <asp:TemplateField ShowHeader="False">
    <ItemTemplate>
    <asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="False"
    CommandName="Select" ImageUrl="~/Images/dettaglio.gif" Text="Seleziona" />
    </ItemTemplate>
    <ItemStyle Width="60px" />
    </asp:TemplateField>
    <asp:BoundField DataField="Id_Attrezzatura" HeaderText="ID"
    InsertVisible="False" ReadOnly="True" SortExpression="Id_Attrezzatura" >
    <ItemStyle HorizontalAlign="Center" Width="30px" />
    </asp:BoundField>
    <asp:TemplateField HeaderText="Tipologia" SortExpression="Column1">
    <EditItemTemplate>
    <aspropDownList ID="DropDownList1" runat="server"
    DataSourceID="SqlDataSource4" DataTextField="Tipologia"
    DataValueField="Id_Tipo" SelectedValue='<%# Bind("Id_Tipo") %>'>
    </aspropDownList>
    </EditItemTemplate>
    <ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text='<%# Bind("Tipologia", "{0}") %>'></asp:Label>
    </ItemTemplate>
    <ControlStyle Width="300px" />
    <ItemStyle Width="150px" />
    </asp:TemplateField>
    <asp:BoundField DataField="Marca" HeaderText="Marca" SortExpression="Marca" >
    <ItemStyle Width="150px" />
    </asp:BoundField>
    <asp:BoundField DataField="Modello" HeaderText="Modello"
    SortExpression="Modello" >
    <ItemStyle Width="100px" />
    </asp:BoundField>
    <asp:CheckBoxField DataField="Abilitato" HeaderText="Abilitato"
    SortExpression="Abilitato" >
    <ItemStyle HorizontalAlign="Center" Width="60px" />
    </asp:CheckBoxField>
    </Columns>
    <EditRowStyle BackColor="White" />
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <SortedAscendingCellStyle BackColor="#E9E7E2" />
    <SortedAscendingHeaderStyle BackColor="#506C8C" />
    <SortedDescendingCellStyle BackColor="#FFFDF8" />
    <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
    </asp:GridView>

  8. #8
    questa è la Sql:

    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:SicraTMConnectionString1 %>"
    ProviderName="<%$ ConnectionStrings:SicraTMConnectionString1.Provide rName %>"




    SelectCommand="SELECT Attrezzature.Id_Attrezzatura, Attrezzature.Marca, Attrezzature.Modello, Tipi.Tipologia, Attrezzature.Prezzo_acquisto, Attrezzature.Data_acquisto, Attrezzature.Descrizione, Attrezzature.Abilitato, Attrezzature.Id_Tipo, (SELECT Tipi.Tipologia WHERE (Attrezzature.Id_Tipo = Tipi.Id_Tipo)) AS Expr1, Attrezzature.Id_Fornitore, Attrezzature.Id_BollaAcquisti FROM Attrezzature INNER JOIN Tipi ON Attrezzature.Id_Tipo = Tipi.Id_Tipo

    WHERE

    (Attrezzature.Id_Tipo = @Id_Tipo) AND (Attrezzature.Marca = @Marca) OR
    (Attrezzature.Id_Tipo = @Id_Tipo) AND (@Marca IS NULL) OR
    (Attrezzature.Marca = @Marca) AND (@Id_Tipo IS NULL) OR
    (@Marca IS NULL) AND (@Id_Tipo IS NULL)

    ORDER BY Attrezzature.Id_Attrezzatura DESC"



    UpdateCommand="UPDATE Attrezzature SET Marca = @Marca, Modello = @Modello, Id_Tipo = @Id_Tipo, Prezzo_acquisto = @Prezzo_acquisto, Data_acquisto = @Data_acquisto, Id_Fornitore = @Id_Fornitore, Descrizione = @Descrizione, Id_BollaAcquisti = @Id_BollaAcquisti, Abilitato = @Abilitato WHERE (Id_Attrezzatura = @Id_Attrezzatura)"



    InsertCommand="INSERT INTO Attrezzature(Marca, Modello, Id_Tipo, Prezzo_acquisto, Data_acquisto, Descrizione, Abilitato) VALUES (@Marca, @Modello, @Id_Tipo, @Prezzo_acquisto, @Data_acquisto, @Descrizione, @Abilitato)">
    <InsertParameters>
    <asp:Parameter Name="Marca" />
    <asp:Parameter Name="Modello" />
    <asp:Parameter Name="Id_Tipo" />
    <asp:Parameter Name="Prezzo_acquisto" />
    <asp:Parameter Name="Data_acquisto" />
    <asp:Parameter Name="Descrizione" />
    <asp:Parameter Name="Abilitato" />
    </InsertParameters>
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList3" DbType="Int16" DefaultValue=""
    Name="Id_Tipo" PropertyName="SelectedValue" />
    <asp:ControlParameter ControlID="TextBox3" DefaultValue="" Name="Marca"
    PropertyName="Text" />
    </SelectParameters>
    <UpdateParameters>
    <asp:Parameter Name="Marca" />
    <asp:Parameter Name="Modello" />
    <asp:Parameter Name="Id_Tipo" />
    <asp:Parameter Name="Prezzo_acquisto" />
    <asp:Parameter Name="Data_acquisto" />
    <asp:Parameter Name="Id_Fornitore" />
    <asp:Parameter Name="Descrizione" />
    <asp:Parameter Name="Id_BollaAcquisti" />
    <asp:Parameter Name="Abilitato" />
    <asp:Parameter Name="Id_Attrezzatura" />
    </UpdateParameters>
    </asp:SqlDataSource>

  9. #9
    Qualcuno può aiutarmi? provo a esporre nuovamente il problema in modo sintetico.

    Visual Web Developer, ho una semplice gridview e nell'istruzione di select ho deciso di filtrare sullaa base di 2 campi da valorizzare.
    La Select funziona in fase di test, ma sulla pagina non va se non valorizzo entrambi i campi.
    Sapete aiutarmi?
    Optime aggiungo anche un immagine della schermata web per far capire meglio.

    Grazie
    Immagini allegate Immagini allegate

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.