- PR -

DataGridでデータベースの情報を表示しながら、入力編集

投稿者投稿内容
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-11-30 14:22
こんにちは。

まず、やりたいことを説明させていただきます。

テーブル
発注 : 発注NO、入荷予定日、発注数
入荷 : 発注NO、入荷日、入荷数、ロット

DataGridに、発注NO、入荷予定日、発注数(以上発注テーブル)を表示させ、
さらに、入荷日、入荷数、ロットを入力できる列を表示させたいのです。

DataGridに発注テーブルの情報を表示させることはできるのですが、
入力用の列の表示の仕方が分かりません。

勿論、最終的には、DataGridを基に、入荷テーブルを作成したいのですが、
とりあえず、入力用のDataGridを作成する方法を、
ご存知の方、ご教授願えますでしょうか?
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-11-30 14:40
発注テーブルと入荷テーブルは、1:多の関係になりそうなので、おっしゃられるような画面設計には少し無理があるような気がします。
マスター・詳細の関係になるように、発注テーブル用のデータグリッドと、入荷テーブル用のデータグリッドを二つ用意された方が良いと思います。

#直接の回答じゃなくて、ごめんなさい。
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-11-30 14:49
trapemiyaさん、ありがとうございます。

正確には、発注NOとオーダNOという項目が、
発注、入荷どちらのテーブルにもあり、
この二つの項目でユニークなデータとなります。

trapemiyaさんのおっしゃるように、データグリッドを2つに分けたほうがよろしいでしょうか?
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-11-30 15:06
引用:

モンジさんの書き込み (2005-11-30 14:49) より:

trapemiyaさんのおっしゃるように、データグリッドを2つに分けたほうがよろしいでしょうか?


もし、 発注テーブルと入荷テーブルが1:1の関係になるのでしたら、テーブルを分ける必要はなく、発注入荷テーブルのようなネーミングで、一つにすれば十分だと思います。
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-11-30 15:48
発注と入荷のテーブルをそれぞれDataAdapterにセットして、
Relations.Addにすると、確かにデータグリッドに、リレーショナルとして表示されますが、
ユーザーがテーブルなど意識しないでいいように、
発注と入荷のデータが1行で表示されたデータグリッドを表示することはできますでしょうか?
背古井
常連さん
会議室デビュー日: 2004/04/02
投稿数: 39
投稿日時: 2005-11-30 16:15
Windowsプログラムかwebプログラムによって異なると思いますが、
どちらにしろSELECTしたデータをDataGridにバインドすれば可能です。
DataAdapterを使用したい場合は、表示のみであれば、発注NOをキーとした
Viewを作成すれば多分できると思います。
いずれにしろ更新、追加はAdo.netを使ったSQLになると思います。
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-11-30 17:15
最初の質問に書いていますが、
単一のテーブルをデータグリッドに表示できますが、
複数テーブルで作成したSQLをデータグリッドに表示する方法がわかりません。

      'SQL文の設定
Const strSelectSchedule As String = _
"Select * from 発注"
oCommand.CommandText = strSelectSchedule

'データを取得
oDataAdapter.SelectCommand = oCommand
oDataSet.Clear()
oDataAdapter.Fill(oDataSet, "発注")

'データをバインド
DataGrid1.SetDataBinding(oDataSet, "発注")
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-11-30 19:27
引用:

モンジさんの書き込み (2005-11-30 17:15) より:
単一のテーブルをデータグリッドに表示できますが、
複数テーブルで作成したSQLをデータグリッドに表示する方法がわかりません。


SQL Serverとかですと、inner joinとかで結合したSQL文を作成します。
まず、SQL文についての基礎知識を習得しましょう。

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