1

「SelectParameters」を動的に入力する必要がありますが、Googleで見つけたのは、固定パラメーターを使用することだけでした。

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="XX"
                            OnSelecting="SqlDataSource2_Selecting" SelectCommand="">
                            <SelectParameters>
                            </SelectParameters>
                        </asp:SqlDataSource>

解決策はありますか?

「OnSelecting」イベントも使用しようとしましたが、存在しないパラメーターに値を割り当てることができません。

 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";
        }

    }
4

2 に答える 2

2

コード ビハインドでは、次のように変数を設定できます。

SqlDataSource1.SelectParameters.Add("parameterName", "parameterValue");

ただし、パラメーターを追加する前にパラメーターをクリアする必要があることに注意してください。そうしないと、パラメーターが重複してしまうためです。

于 2012-04-16T10:33:34.387 に答える
-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 接続文字列を切り替える必要がなくなりました。

于 2014-09-07T12:45:49.973 に答える