好的,我编辑了我的答案以使用不同的方法。您可以执行以下操作。当您在 VS 中创建 SqlDataSource 时,它会在 aspx 中添加 SelectCommand。将命令设置为空并添加一个 SelectParameter,如下所示:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="">
<SelectParameters>
<asp:Parameter DefaultValue="" Name="param1" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
现在在后面的代码中,您可以更改 SelectCommand 并将其传递给这样的参数:
{
// Run this on a click or selected index change
string m_param = "2012"; //this would be something like Textbox1.Text
this.SqlDataSource1.SelectParameters[0].DefaultValue = m_param;
this.SqlDataSource1.SelectCommand = "SELECT ID, FILENAME FROM drmc.checksum WHERE FILENAME LIKE '%" + this.SqlDataSource1.SelectParameters[0].DefaultValue + "%'";
}
您将需要针对 SQL 注入测试“Textbox1.Text”值。正则表达式对此有好处。