我通过在此格式WHERE
中设置[@a]
子句参数来过滤SQL数据源的数据,如果是组合框,我会将值设置为此参数, gridview的前一个sql数据源
SqlDataSource2.SelectParameters.Clear();
SqlDataSource2.SelectParameters["@a"].DefaultValue = cid.ToString();
SqlDataSource2.DataBind();
我需要将值传递给WHERE
参数。
我选择在非选择(不是表单或控件或配置文件或会话......)上解析的过滤
这种方式给了我一个错误。
有没有办法为这个参数[@a]
提供一个值?
答案 0 :(得分:2)
尝试以下方法:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" DataSourceMode="DataSet"
ConnectionString="<%$ConnectionStrings:MyConnectionString %>"
SelectCommandType="Text"
SelectCommand = "SELECT * FROM TABLE WHERE a=@a"
CancelSelectOnNullParameter="false">
<SelectParameters>
<asp:QueryStringParameter Name="a" QueryStringField="a"
DbType="String" ConvertEmptyStringToNull="true" />
</SelectParameters>
</asp:SqlDataSource>
更改 @a
至 a
:
SqlDataSource2.SelectParameters.Clear();
SqlDataSource2.SelectParameters["a"].DefaultValue = cid.ToString();
SqlDataSource2.DataBind();
如果 @a
是 FIRST 参数,您也可以使用 INDEX 0
进行设置:
SqlDataSource2.SelectParameters.Clear();
SqlDataSource2.SelectParameters[0].DefaultValue = cid.ToString();
SqlDataSource2.DataBind();