質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

解決済

MVC ドロップダウンリストを使用した検索機能の追加

kasa_4333
kasa_4333

総合スコア2

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

1回答

0リアクション

0クリップ

490閲覧

投稿2022/09/15 01:48

編集2022/09/16 01:21

前提

ASP.NETを使用しています。
前回の質問ではテキストボックスを使用してテーブルの検索機能を作成しましたが https://teratail.com/questions/5uqbokcpzdugfa
追加で、ドロップダウンリストも使用したいと思っています。

テキストボックスに文字を入れて、ドロップダウンリストで選択し、検索ボタンを押すと、
もともと表示されているBihinテーブルからヒットしたものを表示したいと思っています。

データベースに接続し、index.cshtmlで一覧画面が表示されています。
テキストボックスの値も取得し、検索ボタンを押すとBuppinNameカラムからあいまい検索でヒットしたものの表示は出来ています。

実現したいこと

ドロップダウンリストからBihinというSQLテーブルからBikouクエリの内容を選択できるようにしたいです。
選択した後に検索ボタンを押すとテキストボックスとドロップダウンリストのどちらの内容ともヒットするものを表示したいです。

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

テキストボックス、ドロップダウンリスト、検索ボタン
index.cshtml

@using (Html.BeginForm()) { //テキストボックス @Html.TextBoxFor(model => model.searchString) //ドロップダウンリスト @Html.DropDownListFor( model => model.dbBikou, new List<SelectListItem> { 選択リストの表示 } ) //検索ボタン <input type="submit" value="検索" /> }

該当のソースコード

Bihin2Controller

c#

public ViewResult Index(Bihin2Model model) { if (!String.IsNullOrEmpty(model.serchString)) { // SELECT * FROM Bihin LIKE searchString で検索したレコードを DataTable に取得 } else { // SELECT * FROM Bihin で全レコードを DataTable に取得 } // DataTable から List<BihinDB> modelList を生成 List<BihinDB> modelList = new List<BihinDB>(); ・・・ model.modelList = modelList; return View(model); }

Bihin2Model

public string searchString { get; set; } public List<BihinDB> modelList { get; set; } public string dbBikou { get; set; }

試したこと

index.cshtmlに@Html.DropDownListForを使ってドロップダウンリストを追加。

{選択リストの表示}に備品カラムの内容を表示したいが、表示の仕方が分かりません。
controllerには

SELECT DISTINCT Bikou FROM Bihin

を使用して選択リストの重複をなくそうと考えています。

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

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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

SurferOnWww

2022/09/15 03:38

前回の質問の URL を質問欄に明記してそれをクリックすれば飛べるようにしてください。 どこで躓いていて何が分かれば解決するのですか? 前のスレッドのように一から十までというのはもう勘弁してください。 研修の課題だそうですが、講師には聞いたのですか?
kasa_4333

2022/09/15 04:15

お世話になっております。 >研修の課題だそうですが、講師には聞いたのですか? 一応テキストボックスとドロップダウンボックスを用いた検索機能の追加までが課題で、まだ授業が始まっていないので聞けていないです。 >どこで躓いていて何が分かれば解決するのですか? 前のスレッドのように一から十までというのはもう勘弁してください。 前回のスレッドでは大変お世話になりました。 ドロップダウンリストの選択内容にBihinテーブルのBikouカラムの内容が表示され、選択できるようにしたいです。 Bikouカラムには重複しているデータがあるので、選択するときに重複したデータは一つしか表示されないようにしたいです。
kasa_4333

2022/09/15 04:23

URLを張ったのですが、とぶとエラーになってしまったため、もう一度新しくURLを張ろうとしているのですが更新ボタンが押せないためもう少々お待ちください。
SurferOnWww

2022/09/15 05:34

どこで躓いていて何が分かれば解決するのですか? ・・・に具体的に答えてください。
kasa_4333

2022/09/15 05:52

>どこで躓いていて何が分かれば解決するのですか? ・・・に具体的に答えてください。 ドロップダウンリストの選択リスト部分に特定の文字ではなく、BihinテーブルのBikouカラムの内容を表示できるようにしたいです。そこが分かれば後の検索ボタンの処理は出来ると思います。 Bihinテーブル 物品名 | 備考 洗剤 | 2階 洗剤 | 1階 ゴミ袋 | 緑 ティッシュ | 2階 プルダウンリストの選択リストに、 |ドロップダウンリスト|↓           2階            1階           緑 と表示したいです。 そこからテキストボックスで「洗剤」と入力し、ドロップダウンリストで2階を選ぶとテーブルの一番上にある洗剤の列が表示されるようにしたいです。 簡潔にまとめるとドロップダウンリストの選択リストにbikouカラムの内容を重複なく表示したいです。 Bikouカラムの内容の表示の仕方で躓いています。
SurferOnWww

2022/09/15 08:29 編集

DISTINCT というのを知ってますか? それを使って重複しないように備考列のデータを取ってこれますか? もしそれすら知らないということですとまた一から十まで教えなければ分かってもらえないという話になってしまう ⇒ やっぱり講師に聞きましょうという話になってしまうのですが・・・
kasa_4333

2022/09/15 08:35

>DISTINCT というのを知ってますか? それを使って重複しないように備考列のデータを取ってこれますか? はい。SELECT DISTINCT Bikou FROM Bihinこれで重複無しデータがとれるというのは分かります。
SurferOnWww

2022/09/15 09:33 編集

じゃあなぜその先が分からないのですか? データが取れるのを知っているならコードを書いて取ってください。そのコードを質問に貼ってきちんとできているのを見せてください。そしてそれをどのように DropDownList に設定するかを考えて、コードを書いて、質問に貼って見せてください。
SurferOnWww

2022/09/15 09:34

リンクを直してください。
kasa_4333

2022/09/16 01:31 編集

<じゃあなぜその先が分からないのですか? データが取れるのを知っているならコードを書いて取って <ください。そのコードを質問に貼ってきちんとできているのを見せてください。そしてそれをどのよう <に DropDownList に設定するかを考えて、コードを書いて、質問に貼って見せてください。 なぜその先が分からないのかと言われましても、経験がないので分からないとしか言いようがないです。どのように DropDownList に設定するかなども調べてから分からないので聞いたつもりでした。 すみません。回答ありがとうございまいた。 リンクを何度もコピーしてはっているのですが、エラーになってしまいます。
YT0014

2022/09/16 01:14

「どのように DropDownList に設定するかなども調べて」 実際に調べた方法(検索キーワード、確認したサイトのURLなど)を質問文に追記してください。 また、確認して、理解できなかった部分も併せてお願いします。 なお、リンクエラーは、URL末尾に余分な「),」が含まれているのが原因なので、除去してください。
kasa_4333

2022/09/16 01:31

https://lizefieldwp.azurewebsites.net/index.php/2016/05/02/asp-net%e3%81%ae%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%83%80%e3%82%a6%e3%83%b3%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ae%e3%83%aa%e3%82%b9%e3%83%88%e3%82%92db%e3%81%8b%e3%82%89%e5%8f%96%e5%be%97%e3%81%97/ 決まった値の選択リストですが、こちらも参考にしていました↓ https://www.buildinsider.net/web/bookaspmvc5/040204 二個目のサイトのcontrollerの部分をデータベースから取得した値に入れ替えれば良いと思っているのですが、合っていますか? >なお、リンクエラーは、URL末尾に余分な「),」が含まれているのが原因なので、除去してください。 ありがとうございます。
SurferOnWww

2022/09/16 02:22 編集

> なぜその先が分からないのかと言われましても、経験がないので分からないとしか言いようがないです。 あなたは、 > はい。SELECT DISTINCT Bikou FROM Bihinこれで重複無しデータがとれるというのは分かります。 と言ったじゃないですか。あなたの DB の構造なんて第三者には分からないし、おまけに Entity Framework は使わないと言うし、少なくとも DropDownList に設定するデータがどういう形で取得できるかぐらいは書いてもらわないと話が進まないのですよ。 あなたにとっての一番の問題・課題は取得したデータをどのように DropDownList に渡すかだろうと想像してますが、それにしてもそのデータが具体的にどういうものかが分からないと話にならないのが分かりませんか?
kasa_4333

2022/09/16 02:31

SurferOnWwwさん 分からないのでもう少し調べます。 ご回答ありがとうございました。
YT0014

2022/09/16 02:53

>二個目のサイトのcontrollerの部分をデータベースから取得した値に入れ替えれば良いと思っている のならば、それを試してみて、何が起こるのかを確認するのは、あなたがやるべきことです。 それでエラーが起こったら、エラーメッセージなどを元に情報を入手して修正します。 恐れずに失敗してください。 失敗と修正を繰り返すことで、目的の動作をするコードを作成する。 それが、プログラミング作業です。
kasa_4333

2022/09/16 02:59

YT0014様 model.selectImageList.Add(new SelectListItem() { Value = "jQuery Tips", Text = "jQuery Tips" }); このValueとTextにselect文が入ることは可能なのでしょうか?
YT0014

2022/09/16 03:00

>このValueとTextにselect文が入ることは可能なのでしょうか? 実際に試してください。
SurferOnWww

2022/09/16 03:45

> 分からないのでもう少し調べます。 きちんとやらないなら面倒見切れませんので自分は撤退します。やっぱり講師に聞きましょう。
kasa_4333

2022/09/16 04:08

YT0014様 >実際に試してください。 Value = Select DISTINCT Bikou FROM Bihin 現在のコンテキストに~という名前は存在しません、初期化子のメンバー宣言子が無効ですなどの複数のエラーが出ました。
SurferOnWww

2022/09/16 05:26

YT0014 さん> >> このValueとTextにselect文が入ることは可能なのでしょうか? > 実際に試してください。 試すまでもなくできないのは明らかでしょう。そういうレスはあんまりだと思いますよ。 質問者さん> 試すまでもなくできないというのが分からないのは、前のスレッドで言ったように基本のキが分かってないということで、ここのような文章でやり取りするサイトでは話が通じなくて、解決が難しいでしょう。 前のスレッドで DataTable に取得してそれから List<T> 型のオブジェクトに詰め替えてましたが、それが自力でできていたなら、なぜ Select DISTINCT Bikou FROM Bihin でも同様なことができないのか不思議。
kasa_4333

2022/09/16 05:48

textで選択リストを表示しているのでそこに持ってきたいSELECT文を書けばデータベースからとってこれるのかなと思ったのですが、でもそのまま書くのは文面的になんか違うと思ったので何か違うやり方があるのかという意味で聞きました。他のやり方は思いつかなかったのですが、すべて丸投げするのは良くないと思い、書かせていただきました。
SurferOnWww

2022/09/16 06:16 編集

前のスレッドで DataTable に取得してそれから List<T> 型のオブジェクトに詰め替えてましたが、それが自力でできていたなら ADO.NET を使って DB からデータを取得するという基本的なことはできると思っていたんですが、違うんですか? それができたら、そのデータを SelectList または List<SelectListItem> に格納して DropDownList に渡すのです。 なので、まず、あなたがそのデータを取得するところまで最低書いてくれと言っているのです。
kasa_4333

2022/09/16 07:07

ValueとTextの部分にDBから取ってきたデータを格納するということでしょうか。
YT0014

2022/09/16 07:39

SurferOnWwwさん >試すまでもなくできないのは明らかでしょう。そういうレスはあんまりだと思いますよ。 質問者には、「できない」のが「明らか」ではありません。 ならば、思いついた以上は、試してみることは無意味だとは思いません。 ダメな場合、理由を考えることで、仕組みの理解に繋がる可能性もあります。 また、知識としても、ただ教えられたことより、実際にやってみてダメだったことのほうが、身に着く可能性が高まると思えます。 回答に繋がるコメントではないのは確かなので、回答として記載したのなら「無責任」ですが、質問欄に「試した事」を記載する為には意味があるコメントです。
SurferOnWww

2022/09/16 08:09

明らかにできないので無意味&無駄です。質問者さんが自分で思いついたことは聞く前に自分でやってみろと言う話はあるかもしれませんが、あなたに聞いているのですから、できないと言えば済む話です。それをやってみろと言うのは、質問者さんやここを見ているかもしれない他の閲覧者を混乱させるだけです。 実はあなたも分かってなかったのでは?
YT0014

2022/09/17 01:02

SurferOnWww様 まず、件の試案が実現可能か否かは、検討していません。 失敗しても良いから手を動かしてみては?という趣旨なので、当人が試すなり調べるなりしないのなら、こちらの提案の拒絶ということなので。 なお、申し訳ございませんが、これ以上の返答に関しては、この質問の解決とは無関係になりますので、行いません。ご了承のほどを。
SurferOnWww

2022/09/18 01:33

質問者さん、その後無言ですが、回答のコードが期待通り動くこと確認出来たらベストアンサーをつけてこのスレッドはクローズしてください。とにかく無言で放置は NG です。 どうやって List<string> を取得するかを質問したければ、新たに別のスレッドを立てて質問してください。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。