- PR -

DataGridテーブル結合について

1
投稿者投稿内容
びぎな
常連さん
会議室デビュー日: 2005/03/02
投稿数: 25
投稿日時: 2005-03-07 19:12
お世話になっております。
ASP.Net(C#)を使用しております。

2テーブルを結合してDataGridへ連結し、編集機能もつけたいと
思っています。
テーブルのリレーションを設定するところで、
'column' 引数を Null にすることはできません。パラメータ名 : column
というエラーが出ていて困っています。
どなたかご教授お願い致します。

***現状のソースの抜粋***

 strSQL = "SELECT * FROM F_PT_AVERAGE" +
   " WHERE target_year = '" + target_year + "'" +
   " AND team_code = '" + team_code + "'";
 SqlDataAdapter objDA_PT = new SqlDataAdapter(strSQL,objCon);

 strSQL = "SELECT player_name,player_no,main_position FROM M_PLAYER" +
   " WHERE belong_team_code = '" + team_code + "'";
 SqlDataAdapter objDA_PL = new SqlDataAdapter(strSQL,objCon);

 DataSet ds = new DataSet();
 objDA_PT.Fill(ds,"F_PT_AVERAGE");
 objDA_PL.Fill(ds,"M_PLAYER");
  
 ds.Relations.Add("PT_PLAYER",ds.Tables["F_PT_AVERAGE"].Columns["player_code"],ds.Tables["M_PLAYER"].Columns["player_code"]);

***実現したいSQL文(このSQLは問題なく実行します)***
select m.player_name,m.player_no,f.* from F_PT_AVERAGE f,M_PLAYER m
where m.player_code = f.player_code


以上よろしくお願い致します。
Milan
常連さん
会議室デビュー日: 2005/01/05
投稿数: 33
投稿日時: 2005-03-07 23:18
こんにちは。

コード:
strSQL = "SELECT player_name,player_no,main_position FROM M_PLAYER"



コード:
ds.Tables["M_PLAYER"].Columns["player_code"]



質問からの抜粋ですけど、
これだけ見る限り "player_code" が無いのではないでしょうか?
びぎな
常連さん
会議室デビュー日: 2005/03/02
投稿数: 25
投稿日時: 2005-03-08 11:39
すいません。入れ忘れです。
player_codeを入れたら、下記エラーが出て、原因がわかりません。

[ArgumentException: 対応する親の値が指定されてない値があるため、この制約を有効にできません。]


ノリック
会議室デビュー日: 2004/12/16
投稿数: 8
投稿日時: 2005-03-08 12:19
子テーブルにあるplayer_codeで親テーブルに登録されていないplayer_codeがあるのだとおもいます。
びぎな
常連さん
会議室デビュー日: 2005/03/02
投稿数: 25
投稿日時: 2005-03-08 13:17
おっしゃるとおりでした。
親テーブルをM_PLAYER、子テーブルをF_PT_AVERAGEへ
変更したところ、datagridへうまく表示ができました。
ありがとうございました。

しかし、あと一歩のところでまた問題が発生してしまいました。
親テーブル(M_PLAYER)がマスタテーブルに当たり、
子テーブル(F_PT_AVERAGE)の編集をDataGrid上で行いたいのですが、
どのようにしてよいのかわかりません。
親テーブルの編集はできるのですが・・

ご教授お願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)