- - PR -
DataGridでデータベースの情報を表示しながら、入力編集
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-30 14:22
こんにちは。
まず、やりたいことを説明させていただきます。 テーブル 発注 : 発注NO、入荷予定日、発注数 入荷 : 発注NO、入荷日、入荷数、ロット DataGridに、発注NO、入荷予定日、発注数(以上発注テーブル)を表示させ、 さらに、入荷日、入荷数、ロットを入力できる列を表示させたいのです。 DataGridに発注テーブルの情報を表示させることはできるのですが、 入力用の列の表示の仕方が分かりません。 勿論、最終的には、DataGridを基に、入荷テーブルを作成したいのですが、 とりあえず、入力用のDataGridを作成する方法を、 ご存知の方、ご教授願えますでしょうか? | ||||
|
投稿日時: 2005-11-30 14:40
発注テーブルと入荷テーブルは、1:多の関係になりそうなので、おっしゃられるような画面設計には少し無理があるような気がします。
マスター・詳細の関係になるように、発注テーブル用のデータグリッドと、入荷テーブル用のデータグリッドを二つ用意された方が良いと思います。 #直接の回答じゃなくて、ごめんなさい。 | ||||
|
投稿日時: 2005-11-30 14:49
trapemiyaさん、ありがとうございます。
正確には、発注NOとオーダNOという項目が、 発注、入荷どちらのテーブルにもあり、 この二つの項目でユニークなデータとなります。 trapemiyaさんのおっしゃるように、データグリッドを2つに分けたほうがよろしいでしょうか? | ||||
|
投稿日時: 2005-11-30 15:06
もし、 発注テーブルと入荷テーブルが1:1の関係になるのでしたら、テーブルを分ける必要はなく、発注入荷テーブルのようなネーミングで、一つにすれば十分だと思います。 | ||||
|
投稿日時: 2005-11-30 15:48
発注と入荷のテーブルをそれぞれDataAdapterにセットして、
Relations.Addにすると、確かにデータグリッドに、リレーショナルとして表示されますが、 ユーザーがテーブルなど意識しないでいいように、 発注と入荷のデータが1行で表示されたデータグリッドを表示することはできますでしょうか? | ||||
|
投稿日時: 2005-11-30 16:15
Windowsプログラムかwebプログラムによって異なると思いますが、
どちらにしろSELECTしたデータをDataGridにバインドすれば可能です。 DataAdapterを使用したい場合は、表示のみであれば、発注NOをキーとした Viewを作成すれば多分できると思います。 いずれにしろ更新、追加はAdo.netを使ったSQLになると思います。 | ||||
|
投稿日時: 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, "発注") | ||||
|
投稿日時: 2005-11-30 19:27
SQL Serverとかですと、inner joinとかで結合したSQL文を作成します。 まず、SQL文についての基礎知識を習得しましょう。 |