我需要填写" SelectParameters"动态,但我在Google上找到的只是使用固定参数。
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="XX"
OnSelecting="SqlDataSource2_Selecting" SelectCommand="">
<SelectParameters>
</SelectParameters>
</asp:SqlDataSource>
有没有解决方案?
我也尝试使用&#34; OnSelecting&#34;事件,但我无法为不存在的参数赋值。
protected void SqlDataSource2_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
string[] queryFields = new string[] { ... }; // some dynamic field depends on different table
foreach (string s in queryFields)
{
e.Command.Parameters["@" + s].Value = "filter";
}
}
答案 0 :(得分:2)
您可以在代码后面设置如下变量:
SqlDataSource1.SelectParameters.Add("parameterName", "parameterValue");
但请注意,在添加参数之前需要清除参数。因为否则你最终会得到重复的参数。
答案 1 :(得分:-1)
如果您在初始化控件时设置连接字符串,则可以在控件的init事件上执行此操作,如下所示:
protected void SqlDataSource1_Init(object sender, EventArgs e)
{
SqlDataSource1.ConnectionString = <whatever code you want here>;
SqlDataSource1.ProviderName = <whatever code you want here>;
}
在运行时确定连接属性而非设计时,这仍然是动态的。这有助于我避免使用web.xml转换,并根据指定QA / PROD环境的环境变量在QA和PROD连接字符串之间切换。