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

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

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

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

1回答

453閲覧

Viewへ渡したListのデータを使用して商品名オブジェクトに値を付与してマウスオーバーで表示させたい。

sanezane

総合スコア91

C#

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2018/07/02 08:08

編集2018/07/02 14:32

データベースから取得したデータをオブジェクトに付与しマウスオーバーにて表示させたい。

詳しく書くと

商品用画像が20個存在しているとして、オブジェクトのIDは「shohin01~shohin20」とする。
ControllerでDBから取得した値をListに詰めている。

・商品の入っている箱は4つタブで切り替わる。箱No1,No3は20商品入っている。箱No.2,No4は40個入っている。
箱のNo.が奇数の場合は20個のオブジェクト、偶数の場合は40個のオブジェクトが存在しているということ。

・商品1つにつき2つの名前を持つ商品もある。aaa/bbbのように/で区切り表示する。1つしか登録されていない場合は/はいらない。

Indexでforeachを回せばいいのかという考えはあるのですが、実装できない。お力をお貸し下さい。
データベースの構造

イデータベースの構造

###やりたいこと
イメージ説明

c#

1Controller 2 3 private IEnumerable<GoodsModel.GoodsMeishoViewModel> GetGoodsName(NpgsqlConnection dataConnector) 4 { 5 List<GoodsModel.GoodsMeishoViewModel> GoodsMeishos = new List<GoodsModel.GoodsMeishoViewModel>(); 6 7 // TODO: これではaaaしかとれていないためコメントアウト 8 //int room_num = 1; 9 //int box_num = 1; 10 //int goods_tsuban = 1; 11 12 13 string sql = @"select box_num, goods_tsuban, goods_meisho" 14 + " from GoodsMaster" 15 + " and room_num = :Room_num"; 16 //+ " and box_num = :Box_num" 17 //+ " and goods_tsuban = :Box_tsuban"; 18 19 NpgsqlCommand cmd = new NpgsqlCommand(sql, dataConnector); 20 cmd.Parameters.Add(new NpgsqlParameter("Room_num", NpgsqlDbType.Integer)); 21 //cmd.Parameters.Add(new NpgsqlParameter("Box_num", NpgsqlDbType.Integer)); 22 //cmd.Parameters.Add(new NpgsqlParameter("goods_tsuban", NpgsqlDbType.Integer)); 23 cmd.Prepare(); 24 cmd.Parameters["Room_num"].Value = Room_num; 25 //cmd.Parameters["Box_num"].Value = Box_num; 26 //cmd.Parameters["goods_tsuban"].Value = goods_tsuban; 27 28 NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); 29 DataSet myDS = new DataSet(); 30 da.Fill(myDS); 31 DataTable dt = myDS.Tables[0]; 32 foreach (DataRow row in dt.Rows) 33 { 34 GoodsMeishos.Add(new GoodsModel.GoodsMeishoViewModel() 35 { 36 boxnum = (int)row["box_num"], 37 goodstsuban = (int)row["goods_tsuban"], 38 goodsmeisho = row["goods_meisho"].ToString() 39 }); 40 } 41 return GoodsMeishos; 42 } 43 44 45 46 47 Model------------------------------------------------------------------------------------ 48 49 namespace .Web.Models 50{ 51 public class GoodsModel : ModelBase 52 { 53 54 55 56 ///<summary> 57 ///商品名称をセット 58 ///</summary> 59 public IEnumerable<GoodsMeishoViewModel> GoodsMeisho { get; set; } 60 61 public class GoodsMeishoViewModel 62 { 63 //Box番号 64 public int boxnum { get; set; } 65 66 //商品通番 67 public int goodstsuban { get; set; } 68 69 //商品名称 70 public string goodsmeisho { get; set; } 71 } 72 73 74 75 //Index------------------------------------------------------------------------------------ 76 77 $(function(){ 78 //一番最初の商品名だけ取れる 79 $('#P01').attr('data-title', '@Model.GoodsMeisho.First().goodsmeisho'); 80 81 //foreach文でP{0:D2}とKidoMeishoを回す 82 $.each(meishos in @Model.GoodsMeisho){ 83 alert(meishos); 84 }*@ 85//商品オブジェクトにはclass="P"を付与しておりすべてマウスオーバーに反応する 86 $('.P').tipper(); 87 } 88

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/03 00:44

質問者さんが立てた別スレッド https://teratail.com/questions/134094 と関連しているようですが、そうであれば少し整理して一歩一歩話を話を進めるようにしていただけませんか? 今の状態では話が発散しそうな気がします。
退会済みユーザー

退会済みユーザー

2018/07/03 00:44

質問する際は開発環境を書くようにしてください。OS, .NET, MVC, Visual Studio のバージョン、テンプレートは何を使ったかなどです。前のスレッドで書いたのかもしれませんが、ここしか見てない人も多々いるはず。
退会済みユーザー

退会済みユーザー

2018/07/03 00:45

定義不明の変数、メソッドを含めたコードは書かないようにしてください。前のスレッドで書いたのかもしれませんが、ここだけ見れば分かるようにしてください。
退会済みユーザー

退会済みユーザー

2018/07/03 00:52 編集

あと、「オブジェクト」とか「箱」とか「タブ」という言葉も意味が不明で、それがアップされた画像、コードとどうつながるかが分かりません。それはたぶん自分だけじゃないと思います。誰か質問者さんの近くにいる人に意見を求めるということはできないのでしょうか?
guest

回答1

0

SQL上でgoods_meishoを/区切りで編集することも出来ます。
下記例では、string_aggで/区切りの文字列として編集しているので、単純に文字列として受け取れます。
また、goods_tsubanも配列で畳んでいますので、こちらは配列で受け取る必要がありますが、試したことはありません。

SQL

1select room_num, box_num 2 , array_agg(goods_tsuban order by goods_hyoji_num) goods_tsuban 3 , string_agg(goods_meisho, '/' order by goods_hyoji_num) goods_meisho 4from GoodsMaster 5group by room_num, box_num

投稿2018/07/02 08:44

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問