私はasp.netに取り組んでいます。selectcommandSqlDataSource
にハードコードされたクエリがあります:
<asp:SqlDataSource ID="DataSource1" runat="server" CancelSelectOnNullParameter="False"
ConnectionString="<%$ ConnectionStrings:S.Properties.Settings.ConnectionString %>"
SelectCommand="SELECT * FROM [table]
WHERE ([col1] like Case @col1_param When null Then col1 Else @col1_param End)
and ([col2] like Case @col2_param When null Then col2 Else @col2_param End)"
SelectCommandType="Text">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="col1_param" PropertyName="Text"
Type="String" />
<asp:ControlParameter ControlID="TextBox2" Name="col2_param" PropertyName="Text"
Type="String" />
</SelectParameters>
私が望むのは、1 つのテキスト ボックスにのみデータを入力すると、データはそのテキスト ボックスの値に従って where 句のみに表示されるということです。また、どちらのテキストボックスにも値が配置されていない場合、クエリは場所がないかのように実行されます。
現在、このコードでは、1 つのテキスト ボックスにデータが表示されない場合に何が起こるかがわかりません。すべてのテキスト ボックスが空の場合も同様です。
SQLストアドプロシージャを使用したくありません。
どうすればこれを解決できますか?
ありがとう...