ASP.NETの勉強のためにチームのメンバーを管理する
ページを作っています。
VisualWebDeveloper2008のVBで作っています。
DBにはチーム名とチームの所属メンバーとメンバー一覧の3テーブルがあります。
これらをJOINしてGridViewに表示させたいと思います。
検索結果ではAチームに3人いる場合、3レコード取得されます。
画面に表示させるときには1レコードでメンバーの列だけ3行にしたいと思います。
Templateを指定するとできそうな気がするのですが、メンバーを検索するデータソースの条件にその行のチームコードを指定する方法が分かりません。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
GridViewにBindする前に、クエリの結果を格納したDatatableをいじってから
Bindを行えば
1行目| Aチーム | AAA
| | BBB
| | CCC
2行目| Bチーム | DDD
という表示は可能な気がします。
方法としては単純に
For i as integer = 0 to datatable.rows.count -1
if i > 0 then
if datatable.rows(i)("チーム名").Tostring.equals(datatable.rows(i-1)("チーム名").Tostring) then
datatable.rows(i)("チーム名") = String.Empty
end if
end if
Next i
(Aチーム、Bチームも同様の処理を行う)
この後、GridViewにバインドを行う。
といった感じに、前の行と今の行が同一の文字列なら空文字を入れる
という処理で解決できないでしょうか?
的を射ていない回答であれば申し訳ないですが・・。
No.1
- 回答日時:
>> 画面に表示させるときには1レコードでメンバーの列だけ3行にしたいと思います。
この部分が少しわかりません・・。
SELECT [メンバー一覧].[メンバー名]
FROM [チーム名]
LEFT JOIN [チームの所属メンバー]
ON [チーム名].[チーム名の主キー] = [チームの所属メンバー].[チームの所属メンバーの主キー]
LEFT JOIN [メンバー一覧]
ON [チーム名].[チーム名の主キー] = [メンバー一覧].[メンバー一覧の主キー]
WHERE <検索条件>
で、検索条件に合致したチームメンバー名が
SELECTの結果として3件返ってきたとします。
クエリーの結果
AAAA
BBBB
CCCC
それをGridViewでは1レコードで3行(3列?)で
AAAA|BBBB|CCCC|・・・・
としたいということでしょうか?
>>メンバーを検索するデータソースの条件にその行のチームコードを指定する方法が分かりません。
データソースの条件というかSQLクエリに対する条件に
チームコード(恐らくチーム名テーブルの主キー?)を指定する方法が
わからないということでしょうか?
検索をどのように行うのかイメージをお伝え頂ければもう少しお力になれるかもしれません。
例えば
(1)画面上にはチーム名を入れるテキストボックスがあり、
そこにチーム名を入力すると、該当するチームが表示される。
(2)画面上のGridに表示されたチームをラジオボタン等で選択、
またはボタン等を押下すると画面が遷移し、チームの詳細が閲覧できる。
また、画面上にチームの主キーを表示するかどうかで
内部的に値を持たせるか画面上から主キーを拾って表示するか等で
めんどくささが変わってくると思います。
##DBのレイアウトですが、チーム所属メンバーとメンバー一覧は分けなくても良いのではないでしょうか?
チーム所属メンバーテーブルに
チームの主キー |メンバーの主キー(2)|メンバーの情報
所属メンバーテーブルとメンバー一覧を分ける意図はあるのでしょうか?
この回答への補足
ありがとうございます。
画面のイメージは
チーム名 | メンバー
1行目| Aチーム | AAA
| | BBB
| | CCC
2行目| Bチーム | DDD
・・・
のようにしたいです。テーブルのSELECTは合っています。
GridViewにメンバーがいるか?といわれるといらない気もしますが
これはGridViewの勉強なのでデータの意味はあまり問題にしていません。
現行のシステムで、VBScriptでこのような見栄えを作っているので
移植できるかどうかを試しています。
テーブル構造ですが、
「メンバーはそれぞれ情報をもっていて複数のチームに所属できる」
として、正規化したら3つに分かれました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの設定一覧のようなものは出力できますか? 同じエクセルのファイルを開いた時にチームのメンバー 2 2023/02/16 16:45
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(Microsoft Office) Excelの表記ゆれについて <状況詳細> 7000人を対象とした一覧表があり、それぞれが各支社やチ 2 2023/06/02 15:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) チームごとにどの商品を何個希望しているか数量を算出したいです。 A列(A2~A265)に各チーム名が 3 2023/07/18 18:46
- オンラインゲーム ゲーム友達に犯人と疑われていて困っています。 2 2023/07/10 08:35
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- 会社・職場 公務員にて、課の中のあるチームにて1人は子供の保育園のため残業できないママがいるのですが、別のメンバ 1 2023/03/20 12:31
- その他(就職・転職・働き方) 公務員にて、課の中のあるチームにて1人は子供の保育園のため残業できないママがいるのですが、別のメンバ 3 2023/03/20 12:46
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
Java-jspの画面入力値保持について
-
C言語で今まで表示していた画面...
-
遷移元を判定したい!
-
JAVAのセッション変数の上書き...
-
ServletからHTMLページへの遷移...
-
Javascriptのhistory.back()が...
-
Sessionがnullになりません。
-
Strutsの情報保持の仕方について
-
モーダル画面の親をクリック時...
-
MFCプログラミング
-
ServletからServletへの値渡し
-
画面を隠す・消す方法を教えて...
-
Ctrl+F4を無効にしたい
-
データソース、データセットの作成
-
ASP.NETでファイルをアップロー...
-
親ウィンドウの画面遷移
-
WindowsFormの消去について(C#)
-
サーブレットによるpostデータ...
-
VC++ デスクトップキャプチャ方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
プログラミングで例えばゲーム...
-
C# ログイン画面からメイン画面...
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
画面を隠す・消す方法を教えて...
-
ブラウザアドレスバーからのURL...
-
FormのsubmitでFormの内容がnull
-
ServletからHTMLページへの遷移...
-
Javaプログラミングの質問にな...
-
画像の縦横比固定の計算方法。
-
JAVAのセッション変数の上書き...
-
登録後、呼び出し元ページに戻...
-
Wi-Fiのパスワードが指定なしと...
-
system("cls")について
-
Beautiful Soupのインストール...
-
アドレスバーに引数を表示させ...
おすすめ情報