非常に単純なアプリケーションでSqlDataSourceを使用しています。ユーザーがTextBoxを介してSDSのselectコマンドにいくつかの検索パラメーターを設定できるようにしています。パラメーターごとに1つのTextBoxがあります(txtFirstName、txtLastNameなどを考えてください)。ボタンクリックイベントハンドラーを使用して、デフォルトですべてのレコードを返すSqlDataSourceのSelectCommandプロパティを設定することを計画しています(ここでの目的のために)。このselectコマンドを改良して、ユーザーがいずれかのTextBoxに検索条件を入力したかどうかに応じて、1つ以上のWHERE句を追加したいと思います。
はっきりしない場合の例:
デフォルトでは、SqlDataSourceのSelectCommandプロパティは次のようになります。
SELECT * FROM MyTable
ユーザーがtxtFirstNameに「Bob」と入力した場合、SelectCommandプロパティを次のようにします。
SELECT * FROM MyTable WHERE [FirstName]='Bob'
ユーザーがtxtLastNameに「Jones」と入力した場合、SelectCommandプロパティを次のようにします。
SELECT * FROM MyTable WHERE [FirstName]='Bob' AND [LastName]='Jones'
私の質問:
空のTextBoxをテストしたり、WHERE句を手動で作成したりせずに、これらのWHERE句を動的に作成する方法はありますか?
私の小さなアプリケーションには3つのパラメーターしかないので、これを無理やり押し込むのは苦痛ではありませんが、これを行うもっと簡単な方法があるかどうかに加えて、将来さらにパラメーターを追加する必要がある可能性があるのではないかと思いました。さらに、ワイルドカード検索を追加したい場合があります。