
前提
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




回答1件
あなたの回答
tips
プレビュー