使用ASPX文件中的QueryString

本文关键字:QueryString 文件 ASPX 使用 | 更新日期: 2023-09-27 18:27:35

我试图在ASPX文件中使用sql命令来捕获querysring值,但存在一些语法问题。一切都很好,但当我试图通过querystring过滤它时,我会遇到语法问题。如何使用querystring过滤我的查询?这是我的代码:

<asp:SqlDataSource ID="DD_AI_DS" runat="server" 
              ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
              SelectCommand="SELECT DISTINCT [MyField] FROM [MyTable] where ID = '"+request.querystring[ID]+"' order by ID asc" >
          </asp:SqlDataSource>

使用ASPX文件中的QueryString

试试这个:

<asp:SqlDataSource ID="DD_AI_DS" runat="server" 
   ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
   SelectCommand="SELECT DISTINCT [MyField] FROM [MyTable] where ID = @ID order by ID asc" >
   <SelectParameters>
    <asp:QueryStringParameter Name="ID" QueryStringField="Post_ID" Type="String" />
   </SelectParameters>
</asp:SqlDataSource>

顺便说一句,如果你写的代码真的有效,那么它会通过允许sql注入在你的网站上创建一个安全漏洞。我会阅读这个主题,这样你就不会意外地让你的网站向黑客开放。

您还可以在代码隐藏中设置SqlDataSource属性,如下所示:

DD_AI_DS.SelectCommand = "SELECT DISTINCT [MyField] FROM [MyTable] where ID = '"+ Request.QueryString[ID] + "' order by ID asc";
DD_AI_DS.Select(DataSourceSelectArguments.Empty);

注意:这使您可以在Visual Studio中支持IntelliSense,并在编译时发现一些问题。