コードビハインドでこれが可能であることはわかっていますが、そこでselectcommandを変更してバインドすると、グリッドビューの更新と並べ替えの問題が発生するため、これは私が探している答えではありません。
SQL パラメーターのパラメーター化されたステートメントを既に組み込んでいますが、パラメーター化されたステートメントとして機能しないと思われるクエリの他の部分を変更する必要があります。
例:
<asp:SqlDataSource ID="SQLSolutionSource" runat="server"
SelectCommand="SELECT id, my_cat1, my_cat2, my_cat3, my_cat4, my_cat5, my_cat6 FROM [my_db].[dbo].[my_table]"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" />
コマンドの「SELECT id、my_cat1、my_cat2、my_cat3、my_cat4、my_cat5、my_cat6」部分を使用する約 10 個の IF ELSE ステートメントがあります。
コードビハインドの場合は、上記の文字列を使用して変数を作成し、selectcommand を "" + my_string + " FROM [my_db].[dbo].[my_table]"; に変更できます。
ASPX ページでこれを行う方法はありますか? パブリック文字列を作成して SelectCommand="<%= my_string %> FROM [my_db].[dbo].[my_table]" を使用しようとしましたが、まったく機能していないようです。
セキュリティへの影響や SQL インジェクションについて疑問に思う方もいらっしゃると思いますが、この変数はハードコードされており、ユーザーが変更することはできません。コマンドを簡素化し、コードをきれいにしたいだけなので、選択した項目を変更する必要がある場合は、10 の異なる場所ではなく、1 つの変数で行うだけで済みます。