私はかなり些細な作業のように見えるものを達成しなければなりませんが、予想以上に混乱していることが判明しました。ここにシナリオがあります:個別のSQL Serverデータベースクエリの結果セットをGridViewにロードする方法を教えてください。
私はSQL Server
データベースからデータを取得しており、それをWebページ(かなり普通のシナリオ)に表示していますが、GridView
です。しかし、データベース上で実行されるクエリを決定するフィルタがいくつかありますが、最終的にはGridView
に表示されるデータが明らかに決定されます。私はこれらのフィルタを効率的に組み込むのに少し問題があります。現在、私はこれら3つのサブルーチンを持っています:LoadPendingRequests()
、LoadApprovedRequests()
、およびLoadDeniedRequests()
です。ご想像のとおり、私はCheckboxList
を使用して、ユーザーが「保留中」、「承認済」、または「拒否」を選択できるようにします。選択された項目に応じて、対応するサブルーチンが呼び出され、GridView
に対応するデータ。この部分は動作します。
ユーザーは、保留、拒否、および承認された要求の任意の組み合わせを同時に読み込むことができます。これは私が困っているところです。ここでCheckboxList
ためSelectedIndexChanged
イベントハンドラは次のとおりです。ここで
Protected Sub CheckboxList1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles CheckboxList1.SelectedIndexChanged
If CheckboxList1.SelectedIndex < 0 Then
CheckboxList1.SelectedIndex = 0
End If
If CheckboxList1.Items(0).Selected = True Then 'pending checkbox
LoadPendingRequests()
End If
If CheckboxList1.Items(1).Selected = True Then 'approved checkbox
LoadApprovedRequests()
End If
If CheckboxList1.Items(2).Selected = True Then 'denied checkbox
LoadDeniedRequests()
End If
End Sub
は(ちょうど「どこで」句でフィルタ単語を置き換え、それらはすべて同じです)リクエストをロードサブルーチンの例です。
この設定では、ユーザがCheckboxList
のボックスをクリックすると同時に、保留中、承認済み、拒否されたリクエストをロードする方法を教えてください。私は、必要に応じてこのプロセスを完全に変更することができます。
これにアプローチする最も単純な方法は、WHERE句がチェックボックスに応じてオンザフライで構築されるクエリを1つだけ持つことです。 – peterG
@peterG返事をありがとう。私はこのやり方も考えていました。誰かが別のアプローチのアイデアを持っているかどうかを見たいのですが、私はこのようにしてしまうかもしれません。 – ic3man7019
より良いオプションは、ステータスをパラメータとして受け取るストアドプロシージャを作成することです。 –