こんにちは、選択とテキスト型の入力があります。これらのコントロールは、データグリッドのリストをフィルタリングするために使用されます。選択コントロールには、LastName、MiddleName、FirstName、Gender、City、および StudentID のオプションがあります。それから私はこのクエリを与えられました:
SELECT * FROM Student
WHERE ( LastName LIKE '%' + @LastName + '%' OR @LastName = '' )
AND ( MiddleName LIKE '%' + @MiddleName + '%' OR @MiddleName = '' )
AND ( FirstName LIKE '%' + @FirstName + '%' OR @FirstName = '' )
AND ( Gender LIKE '%' + @Gender + '%' OR @Gender = '' )
AND ( City LIKE '%' + @City + '%' OR @City = '' )
AND ( StudentID LIKE '%' + @StudentID + '%' OR @StudentID = '' )
たとえば、ユーザーは First Name を選択し、「James」と入力します。これは、「名前が「ジェームズ」である生徒のリストを教えてください」と読むことができます。私のコントローラーでは、私が考えた唯一の方法は、If..Else If または Switch 条件を使用することです。次のようでした。
string lastName = String.Empty;
string middleName = String.Empty;
and so on..
if(dropdown == "Lastname")
{
lastName = textbox_value;
}
else if(dropdown == "Middlename")
{
middleName = textbox_value;
}
and so on..
次に、値をパラメータとしてSQLクエリに渡すメソッドがあります。
resultList = GetRecord(lastName, middleName, firstName, gender, city, studentID);
私の質問は、If..Else と Switch を使用するよりも、最もクリーンでシンプルな方法は何ですか?