MVC String.IsNullOrEmptyを用いたSQL文

前提

mvcを用いて、データベースに接続し、一覧画面と検索機能の追加をしています。

実現したいこと

テキストボックスとプルダウンボックスがあり、それぞれmodel.a model.bです。
model.aには名前カラム(Name)の検索、model.bには性別(gender)のカラムの検索機能を追加したいです。

発生している問題・エラーメッセージ

現在はmodel.aのテキストボックスからNameカラムの検索は出来ます。

if (String.IsNullOrEmpty(model.a)) { //一覧表示 command.CommandText = "SELECT * FROM Syain"; } else {//aから名前を取得 command.CommandText = "SELECT * FROM Syain WHERE Name LIKE '%" + model.a + "%'"; }

'%" + model.a + "%'"の部分は実際にはパラメータを利用しておりますが、
分かりやすくするために省略しています。

該当のソースコード

上記のソースコードにmodel.bも加えた検索機能を追加したいです。
①テキストボックス、プルダウンボックスともにnullか空欄の時
一覧画面を表示(SELECT * FROM Syain)

②テキストボックスに文字が入っていて、プルダウンボックスはnullか空白の時
テキストボックスの内容で検索する(SELECT * FROM Syain WHERE Name LIKE '%" + model.a + "%'")

③テキストボックスはnullか空白で、プルダウンボックスには選択リストから選択されている時
プルダウンボックスの内容で検索する(SELECT * FROM Syain WHERE Gender LIKE '%" + model.b + "%'" )

④テキストボックスにもプルダウンボックスにも文字が入っていて、選択リストから選択されている時
どちらにも満たしているものが検索される(②と③を&&でつなぐ?)

Syain.model

public string a { get; set; } public List<BihinDB> aList { get; set; } public string b { get; set; } public List<SelectListItem> bList { get; set; }

index.cshtml

@using (Html.BeginForm()) { //テキストボックス @Html.TextBoxFor(model => model.a) //ドロップダウンリスト @Html.DropDownListFor( model => model.b, Model.bList, "未選択") //検索ボタン <input type="submit" value="検索" />

試したこと

String.IsNullOrEmpty(model.a)
のmodel.aの後にmodel.bを追加してみましたが、IsNullOrEmptyの部分がエラーになり、引数2を指定するメソッド”IsNullOrEmpty”オーバーロードはありませんと表示されます。

補足情報(FW/ツールのバージョンなど)

ASP.NET MVC 
Windows 10 Pro,
Visual Studio2022 Version 17.3.2
.NET framework 4.7.2

コメントを投稿

0 コメント