4

“我在 asp.net vb 中工作,我试图从 URL 中获取一个变量并将其传递到我的 sql 数据源的 select 语句中。到目前为止,我有这个,但它不适用于 asp.net。

    <%Dim PersonNumId as String
    PersonNumID = Request.QueryString("Person")
    Dim PersonNum2
    PersonNum2 = Convert.ToInt32(PersonNumID)%>
    <aspSqlDataSource (other information required) SelectCommand="Select Name From Interests Where ID=@PersonNumID"  />
    <SelectParameters><asp:QueryStringParameter DefaultValue="<%=PersonNum2%>" DbType=Int32/></SelectParameters

我尝试了几种不同的转换方法,但我需要最终结果是查询语句中的变量是一个 int。我是新手,所以任何建议都将不胜感激!

4

2 回答 2

4

答案最终很简单(对于了解 asp.net 的人)在<asp:SqlDatasource><Selectparameters>下面有一个选项,<asp:QueryStringParameter>您可以在 querystringfield 下输入要查询的字段,我认为它会自动将其转换或解析为您想要的类型。我的问题中有这个,但我不知道它实际上做了什么。我只使用了 querystringParameter,因为我在其他地方的示例中看到了它。所以这就是我最终得到的。

    <asp:SqlDataSource (other information required) SelectCommand="Select Name From Interests Where ID=@PersonNum">
   <SelectParameters>
   <asp:QueryStringParameter Name="PersonNum" QueryStringField="Person" DbType="Int32"/></SelectParameters></asp:SqlDataSource>
于 2012-12-12T15:33:32.333 回答
2

在后面的代码中你可以尝试:

SqlDataSource1.SelectCommand = "Select * from notes where ID=" + Request.QueryString["ID"];

请使用最佳实践来保护自己免受 SQL 注入。

于 2012-12-05T21:58:00.867 回答