asp.net查询字符串数据绑定

时间:2012-01-16 12:22:29

标签: c# asp.net

我创建了一个从查询字符串加载数据的页面。并使用URL创建指向另一个页面的链接,如下所示。

http://localhost:61279/clubpage.aspx?CategoryID=1

当我点击类别1时,如何提取与该查询字符串相关的数据。

我拥有的一些代码但它没有用。

   </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        Youth clubs</h2>
    <p>
        <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" 
        EnableViewState="False">
            <HeaderTemplate>
                <ul>
            </HeaderTemplate>

            <ItemTemplate>
               <%-- <%--<%-- You can use an anchor element... --%>
            <%--    <li><a href='youthclubpage.aspx?CategoryID=<%# Eval("YouthClubID") %>'><%# Eval("youthclubname") %></a> - <%# Eval("description") %></li> --%>                

                 <%-- Or a HyperLink Web control...---%>
                <li><asp:HyperLink runat="server" Text='<%# Eval("youthclubname") %>' NavigateUrl='<%# "youthclubpage.aspx?CategoryID=" + Eval("YouthClubID") %>'></asp:HyperLink>
                  - <%# Eval("Description") %></li>

            </ItemTemplate>

            <FooterTemplate>
                </ul>
            </FooterTemplate>
        </asp:Repeater>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:joanton7865org7272_youthpodcastConnectionString %>" 

        SelectCommand="SELECT [youthclubname], [description], [YouthClubID] FROM [youthclublist]">
    </asp:SqlDataSource>
    </p>

    </asp:Content>

3 个答案:

答案 0 :(得分:1)

您可以通过

访问查询字符串
int categoryId = 0;

if(int.TryParse(Request.Params["CategoryID"]), out categoryId))
{
  // query data with categoryID
}
else
{
  // no category id
  Response.Redirect("Default.aspx");
}

有关Request Params

的更多MSDN信息

答案 1 :(得分:1)

您可以像这样使用,并确保使用参数化查询来避免SQL注入 SqlCommand Class

int categoryId = 0;

if(Request["CategoryID"]!=null)
{
categoryID=Convert.ToInt32(Request["CategoryID"]);
SqlConnection ConnObject = new SqlConnection("ConnString of your SQL Provider"); 
SqlCommand cmd = new SqlCommand("select some thing from your table where category_ID=@catID",ConnObject); 
cmd.Parameters.AddWithValue("@catID", categoryId); 
SqlDatareadr dr= cmd.ExecuteReader();
while(dr.read())
{
// use the returned values from DB 
}
}
else
{

//category not exist
}

答案 2 :(得分:0)

int CatagoryID = Request["CatagoryID"];

string myQuery = "Select Fields from table where [Filtered column] = " + CatagoryID;

这是你在找什么?