2017-07-28 17 views
0

これは簡単ですが、空白を描いています。私は検索に使用する5つのテキストボックスを持っています。 TextBox1が塗りつぶされている場合、GridView1、TextBox2 for GridView2などが設定されます。次に、TextBox1またはTextBox2の両方が塗りつぶされている場合でも、両方が塗りつぶされている場合は、さらに4つのGridViewが作成されます。 1つまたは3つのTextBoxが塗りつぶされていることに基づいて、別のGridViewが作成されます。1つまたは複数のフィールドに基づくクエリ

Switchまたは500以外の方法がある場合1から3の検索フィールドに基づいてGridViewにデータを入力するためのシナリオを入力するとどうなりますか?

+0

のGridView(S)のためのあなたのSqlDataSourceコントロールやObjectDataSourceの中でこれを入れて、SQLコードおよび/またはASPの例を表示することができます.netコード。 – Nino

+0

@Nino okはGridViewを1つ見てみましょう。 5つの検索ボックス:CompanyID、CustomerNumber、LocationID、MarketerNumber、MeterNumber。このGridViewは、CustomerNumberが唯一のボックス、つまりLocationID、またはMarketerNumberである場合に入力できます。 CustomerNumber AND LocationID、またはCustomerNumber AND MarketerNumber、またはLocationID AND MarketerNumberの場合は、この値を入力することもできます。つまり、検索/フィルタの数に応じて7つの異なるデータセットが入力されます。 – toadfromgrove

答えて

0

このケースでは、通常、複数の入力パラメータを持つ特定の検索クエリを定義します。このクエリは、すべてのパラメータに値があるかどうかをチェックします。例えば

-- This part only if you use ODBC connection, it you use SQL Client connection you don't need it 
declare @CompanyID int 
declare @CustomerNumber int 
declare @LocationID int 
declare @AnotherFilter varchar(100) 

SELECT @CompanyID=?, @CustomerNumber=?, @LocationID=?, @AnotherFilter=? 

-- End ODBC specific 

SELECT * 
FROM Your_table 
WHERE 
([email protected] OR @CompanyID=0) 
AND 
([email protected] OR @CustomerNumber=0) 
AND 
([email protected] OR @LocationID=0) 
AND 
([email protected] OR @AnotherFilter='') 

あなたは少しより具体的にする必要があり

+0

これは各テキストボックスに入力することを前提としています。それらがLocationTextBoxを埋めていないとすると、WHERE句のANDは何も返しません。 – toadfromgrove

+0

GridViewをObjectDataSourceにリンクします。ここでは、パラメータをテストし、デフォルト値をtueクエリに渡すメソッドを参照します –

関連する問題