通过查询字符串查询数据库

时间:2011-01-15 06:54:19

标签: asp.net

我想创建一个像http://localhost/menu.aspx/?id这样的网址,这样在输入时,它会显示数据库中的所有ID。 例如: 134

123

543

234

可能是从数据库中提取后应显示的ID。但是,它应该显示为它没有任何控制或没有安排在任何网格等。如何做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您正在寻找跨两页的过滤数据,我在这里有一个示例......

Page1.aspx

Page1.aspx

Page2.aspx Page2.aspx

  1. Page1你有两个链接按钮 文本是产品ID和产品 姓名分别为
  2. 这些链接按钮的Postbackurl设置为不同的页面 - ~page2.aspx?column = ids和~page2.aspx?column = names列出db中的所有ID /名称。
  3. Page1标记:

    <asp:LinkButton Text='Product Ids'  runat="server" CommandArgument='Submit' PostBackUrl='~/StackOverflowQs/QueryDBByQueryString.aspx?column=ids'>
    </asp:LinkButton>
    
        <br />
    
    <asp:LinkButton Text='Product Names'  runat="server" CommandArgument='Submit' PostBackUrl="~/StackOverflowQs/QueryDBByQueryString.aspx?column=names">
    </asp:LinkButton>
    

    Page2标记:

    <asp:SqlDataSource ID='SqlDataSource1' runat='server'
            SelectCommand='select productid, productname from products' 
            ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString  %>">
    </asp:SqlDataSource>
    
        <asp:Repeater ID='Repeater1' runat="server">
            <HeaderTemplate>
                <ul>
            </HeaderTemplate>
            <ItemTemplate>
               <li>
                    <%# Eval("ProductID") %>
                </li>
            </ItemTemplate>
            <FooterTemplate>
                </ul>
            </FooterTemplate>
        </asp:Repeater>
    
        <asp:Repeater ID='Repeater2' runat="server">
            <HeaderTemplate>
                <ul>
            </HeaderTemplate>
            <ItemTemplate>
                <li>
                    <%# Eval("ProductName") %>
                </li>
            </ItemTemplate>
            <FooterTemplate>
                </ul>
            </FooterTemplate>
        </asp:Repeater>
    

    此页面有两个Repeater和一个sqldatasource,repeater1有项目模板显示所有产品ID,而repeater2的项目模板显示产品名称。 根据查询字符串,相应的转发器设置为通过绑定其数据源来显示数据,如下面的代码片段所示。

    Page2代码:

    protected void Page_Load(object sender, EventArgs e)
        {
            String queryString = Request.QueryString["column"];
    
            if(queryString.Equals("ids"))
            {
                Repeater1.DataSourceID = "SqlDataSource1";
                Repeater1.DataBind();
            }
            else if(queryString.Equals("names"))
            {
                Repeater2.DataSourceID="SqlDataSource1";
                Repeater2.DataBind();
            }
    
        }