none
【至急ご教示ください】Html.DropDownListを使用して、ログインさせたい。 ASP.NET MVC C#を使用。 RRS feed

  • 質問

  • 現在Webシステムを作成しており、プログラミングを始めて2か月になります。

    本やネットで調べましたが、合致するものがありませんでしたのでこちらで質問させていただきました。

    DropDownListで「所属名」を選択させ、ログイン認証をしようと思っていますが、OracleのDBからSQLで取り出したリスト(Modelに記載)をControllerからViewに表示させることができません。

    またDropDownListで選択したものをコードにし認証させたあとに、所属名を別のViewに表示させようと思っています。

    ご存知の方がいらっしゃいましたら教えて頂けないでしょうか?

    2011年2月13日 13:26

回答

すべての返信

  • 具体的には「何が」できなくて困っているのでしょう?
    質問が漠然としていて、どのように返答したらよいか困るような状態です。
    たとえば最初の質問だと、そもそもControllerでデータは取り出せてるのか、そこからViewにデータが持ってこれてないようにみえるのか、HTML.DropDownListの使い方がわからないのか、といろいろな問題が考えられます。
    もっと自分がやりたいけど困っている部分、についてきちんと説明してください。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2011年2月14日 8:25
  • 次のサイトで公開されているサンプルでは Html.DropDownList が使用されています。

     EFMVC - ASP.NET MVC 3 RTM and EF Code First
     http://efmvc.codeplex.com/

    参考にしてみてはいかがでしょうか。
    2011年2月14日 8:58
  • 返信ありがとうございます。

    説明不足で申し訳ございません。

     

    Html.DropDownListOracleDBからSQLで取り出したリスト(所属名)を表示させ、選択した所属名をログイン認証に使用したいと思っておりますが、以下の2点で困っています。

     

    1.Html.DropDownListOracleDBからSQLで取り出したリスト(所属名)を、ログイン画面に表示できない。

    →Oracle DB接続はModelに書いております。

    取り出したリストを「DepartmentList」とし、Controllerに「ViewData[“DepartmentList”]」と記載し、Viewの「<%: Html.DropDownList("DepartmentList","診療科を選択してください")%>」に代入したいです。

     

    2.Html.DropDownListで選択した所属名「DepartmentList」をModelDepartmentに入れたい。

    DepartmentListの値を「Department」に代入し、認証させたいです。

    いかがでしょうか?

    2011年2月14日 10:05
  • まだなにができてないのかわからないのですが、もしかして

    > 取り出したリストを「DepartmentList」とし、

    OracleとのDB接続を記述しているだけで、そこからデータを取り出してリストにすること自体ができていないんでしょうか?


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2011年2月15日 2:03
  • まだなにができてないのかわからないのですが、もしかして

    > 取り出したリストを「DepartmentList 」とし、

    OracleとのDB接続を記述しているだけで、そこからデータを取り出してリストにすること自体ができていないんでしょうか?


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)


    お手数をおかけしまして、申し訳ございません。

    おっしゃるとおり、リストにすることが現在できておりません。

    2011年2月15日 6:10
  •  タイトルに「至急」と書くほど、回答されない傾向が見受けられます:p

     小野さんが書かれていますが、まず、落ち着いて、自分がしようとしている質問を読み返し、“事情をまったくしならない人が”質問の意図を読み取れるか、考えましょう。これは、自分自身が“何を質問したいのか”見直し、自分が行う質問を理解することにも役立ちます。これを、「そんな時間はない」と言う人はたくさんいましたが、そういう人ほど、「そんな時間」以上に時間をかけなければ解決方法を得られていない場合が多いです。


     さて、タイトルには「ログインさせたい」とあります。しかし、質問内容は「DropDownList に表示させたい」の様です。このふたつはまったく違うものであるため、何を尋ねたいのか、理解しにくい状況にあります。

     また、DropDownList で“選択したものによって認証する”とありますが、ここにはセキュリティ上の非常に大きな問題を感じます。あなたにとってこれは解決済みの問題かもしれませんが、この文しか読んでいない人にとっては、非常に大きな問題に映ります。特に、「診療科を選択してください」などと書かれていると、医療システムであると推測されます。医療情報は、個人の重要なプライバシーではないでしょうか。それを、選択によって認証が完了するというのは、設計上の重大なミスではないかと思います。

     この様に、読み手に不要な疑問を与える様な情報は隠蔽しながら、問題解決のための情報はふんだんに盛り込まなければなりません。「ウェブで聞いたらすぐに答が得られる」のは、質問内容が「~って、どういう意味?」などの単純な場合のみです。そうでない質問には、質問者にもそれなりの情報処理能力が要求されます。


     今回の質問内容は、こうなるでしょうか。

    DropDownList にデータベースのデータを表示させる方法について

     プログラミングを初めて2ヶ月の若輩者です。Oracle にあるデータを、DropDownList に表示させたいと思っています。MVC アーキテクチャに沿ってクラスを作成しています。データベースから model にデータを抽出することは出来ました。これを view に表示させることが出来ません。これまで、『~』という書籍、『~』のサイトで調べましたが、どれも MVVM アーキテクチャで書かれているため、MVC アーキテクチャではどの様に表現するのかわかりませんでした。ご存知の方がいらっしゃいましたら、教えてください。

     本題。使用しているのは、Visual Studio でしょうか。それとも、Visual Web Developer でしょうか。VWD だと設定出来るのかどうかわからないのですが、VS なら、view に貼り付けているコントロールに対して DataBinding を設定すればいいのではないでしょうか。すなわち、ASP.NET においては、初期設定と model でクリアできる問題であり、control で何とかする問題ではありません。model までデータが来ているのかどうか、疑問に思います。

     また、「ログインしたい」という所も、よく分かりません。Oracle からデータを持ってくるためにも Oracle へのログインが必要です。model へデータを持ってこれていないのなら、Oracle へのログインがしたいのでしょうか。

    …って所まで書いておいて、アップし忘れていたのだが、model へのデータ取得も出来ていないのですね。

     では、何処までは出来ているのでしょう?Oracle への接続はできている?SQL 文は、送信されているっぽい?なにか例外が発生している?


    Jitta@わんくま同盟
    2011年2月16日 11:58
  • 返信くださいました 小野様はじめ、totojo様、Jitta様 大変申し訳ございません。

    締切が近いのになかなかうまくできないのと、プログラミング自体が初めてで知識がないという状況でパニックになっておりました。

    今回学習しましたので、以後質問する際は気をつけたいと思います。


    使用しているのは、Visual Studio 2010 です。

    質問はJitta様が書いてくださった「DropDownList にデータベースのデータを表示させる方法について」です。

    Oracleに接続、SQL文返信はできており、Modelにデータを抽出することはできました。

    それで、ModelからViewにデータを渡すのですが、Modelのデータをリスト化する方法がわかりません。


    自信がないのですが、質問になっていますでしょうか?
    2011年2月17日 11:44
  •  Model にデータを抽出できているが、リストすることが出来ていないとは、どの様な状況でしょうか。

     .NET Framework には、DataSet、DataTable というクラスがあり、これらを使うと、データベースの内容をローカルにコピーするような感じで使うことが出来ます。これらを基底クラスとして、独自のテーブルを構成する(テーブル エディタがあります)のが一般的な方法です。他は、コレクションクラスを使うことでしょうか。LINQ to SQL を使うという方法もありますね。

     今、具体的に、どのようなクラスに、どの様にして取り出しているのでしょうか。DataSet クラスを使用しているわけではないことはわかりました。DbDataReader クラスからの導出クラスを使って、1つずつ取り出しているのでしょうか。


    Jitta@わんくま同盟
    2011年2月18日 13:33
  • 次のチュートリアルの中に DropDownList の実装方法も出てきます。急がば回れで、いちど手順通りに試してみるのが結局は近道のような気がします。

      ASP.NET MVC Music Store: The Official Microsoft ASP.NET Site
      http://www.asp.net/mvc/tutorials/aspnet-mvc-music-store
    2011年2月18日 16:50