Поисковые запросы в VB.net Требуется помощь? - PullRequest
1 голос
/ 03 августа 2011

Я пытаюсь выполнить поисковый запрос, используя выпадающие списки с кнопкой поиска. Я хочу, чтобы он поднял данные, которые ищут. Я не знаю, с чего начать, я искал какое-то кодирование и разные способы сделать это, но они кажутся сложными, это бит ASP, который является моей слабостью, требует некоторой помощи и руководства. ниже приведен код страницы;

   <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="ForSale.aspx.vb" Inherits="Users_ForSale" title="Properties For Sale" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">


    <h3>Properties For Sale</h3>
    <h5>
        <asp:Label ID="lblTown" runat="server" Text="Town:"></asp:Label>
        <asp:DropDownList ID="ddlTownSearch" runat="server">
            <asp:ListItem></asp:ListItem>
            <asp:ListItem>Chadderton</asp:ListItem>
            <asp:ListItem Value="Failsworth"></asp:ListItem>
            <asp:ListItem>Oldham</asp:ListItem>
            <asp:ListItem>Royton</asp:ListItem>
            <asp:ListItem>Shaw</asp:ListItem>
        </asp:DropDownList>
        <asp:Label ID="lblBedroomsSearch" runat="server" Text="Bedrooms:"></asp:Label>
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem></asp:ListItem>
            <asp:ListItem>1</asp:ListItem>
            <asp:ListItem Value="2"></asp:ListItem>
            <asp:ListItem Value="3"></asp:ListItem>
            <asp:ListItem>4</asp:ListItem>
            <asp:ListItem>5</asp:ListItem>
            <asp:ListItem>6+</asp:ListItem>
        </asp:DropDownList>
        <asp:Label ID="lblMinPrice" runat="server" Text="Min Price (£):"></asp:Label>
        <asp:TextBox ID="txtMinPriceSearch" runat="server" Width="87px"></asp:TextBox>
        <asp:Label ID="lblMaxPriceSearch" runat="server" style="text-align: left" 
            Text="Max Price (£):"></asp:Label>
        <asp:TextBox ID="TextBox1" runat="server" Width="87px"></asp:TextBox>
    </h5>
    <h5>
        <asp:Button ID="btnForsaleSearch" runat="server" Text="Search" />
    </h5>
    <p>
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
            DataKeyNames="ProductId" DataSourceID="SqlDataSource1" ForeColor="#333333" 
            GridLines="None" Width="588px">
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <Columns>
                <asp:ImageField DataImageUrlField="ImageURL">
                </asp:ImageField>
                <asp:BoundField DataField="ProductId" HeaderText="ProductId" ReadOnly="True" 
                    SortExpression="ProductId" />
                <asp:BoundField DataField="Description" HeaderText="Description" 
                    SortExpression="Description" />
                <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price" />
                <asp:BoundField DataField="Town" HeaderText="Town" 
                    SortExpression="Town" />
            </Columns>
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
    </p>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:JPEstatesConnectionString %>" 
    SelectCommand="SELECT * FROM [Products]" 
        DeleteCommand="DELETE FROM [Products] WHERE [ProductId] = @ProductId" 
        InsertCommand="INSERT INTO [Products] ([ProductId], [Description], [Price], [Category], [ImageURL]) VALUES (@ProductId, @Description, @Price, @Category, @ImageURL)" 
        UpdateCommand="UPDATE [Products] SET [Description] = @Description, [Price] = @Price, [Category] = @Category, [ImageURL] = @ImageURL WHERE [ProductId] = @ProductId">
            <DeleteParameters>
                <asp:Parameter Name="ProductId" Type="String" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Description" Type="String" />
                <asp:Parameter Name="Price" Type="Decimal" />
                <asp:Parameter Name="Category" Type="String" />
                <asp:Parameter Name="ImageURL" Type="String" />
                <asp:Parameter Name="ProductId" Type="String" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="ProductId" Type="String" />
                <asp:Parameter Name="Description" Type="String" />
                <asp:Parameter Name="Price" Type="Decimal" />
                <asp:Parameter Name="Category" Type="String" />
                <asp:Parameter Name="ImageURL" Type="String" />
            </InsertParameters>
    </asp:SqlDataSource>

</asp:Content>

1 Ответ

1 голос
/ 03 августа 2011

Это зависит от вашей стратегии, если вы хотите искать с ТОЧНО одинаковыми совпадениями, ваш поисковый запрос будет выглядеть так: SELECT * FROM [Products] WHERE [ProductId]=@ProductID AND [Price]=@Price AND ... и другие необходимые вам условия.

и если вы хотите получить похожие результаты, вы должны использовать LIKE вместо '=', как этот: SELECT * FROM [Products] WHERE [ProductId] LIKE '%' + @ProductId+ '%' AND ([Price] BETWEEN @Price1 AND @Price2) AND ... и другие условия

Прайс1 и Прайс2 могут быть в диапазоне от цены пользовательского ввода

Это поможет вам использовать ASP.NET SQLParameters с оператором LIKE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...