使用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>
试试这个:
<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,并在编译时发现一些问题。