从 URL 获取变量并将其传递到 SqlDataSource SelectCommand 中



"我正在使用 asp.net vb,我正在尝试从URL中获取一个变量并将其传递到我的sql数据源的选择语句中。到目前为止,我有这个,它不适用于 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

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

答案最终很简单(对于知道 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>

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

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

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

最新更新