- PR -

.NETでデータベース

投稿者投稿内容
トレプチェット
会議室デビュー日: 2005/09/04
投稿数: 8
投稿日時: 2006-05-20 00:58
C#でACCESSを使って開発を要求されています。

Webで検索すると、ほとんどというか全ての情報が
テーブルが1つしかない単純なものばかりです。
現在使用されているACCESSは20数個のテーブルがあり
複雑にリレーションが張られています。

いろいろ調べていると、.NETではJOINされたテーブルはUPDATE
できないようです。

そうなると、実際には中規模以上のデータベースを操作するには
コツがあると思うのですが、いいWebページありませんか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-20 01:04
引用:

パソコン男さんの書き込み (2006-05-20 00:58) より:

いろいろ調べていると、.NETではJOINされたテーブルはUPDATE
できないようです。


.NET とか関係なく 結局はSQLですよ、UPDATE文に表を2つかける構文てありましたっけ?
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-05-20 01:22
引用:

パソコン男さんの書き込み (2006-05-20 00:58) より:
いろいろ調べていると、.NETではJOINされたテーブルはUPDATE
できないようです。


はい、大抵は結合されたテーブルを直接は更新できないですね。普通、データを更新したいときには、更新対象のテーブルやレコードを明示的に指定するものです。

#20テーブルって十分小規模だと思う・・・
なせ
常連さん
会議室デビュー日: 2006/01/06
投稿数: 41
お住まい・勤務地: おおさか
投稿日時: 2006-05-20 07:47
引用:

パソコン男さんの書き込み (2006-05-20 00:58) より:

テーブルが1つしかない単純なものばかりです。
現在使用されているACCESSは20数個のテーブルがあり
複雑にリレーションが張られています。


テーブルが1個であろうが20個あろうが100個あろうが、
.NET側で書く操作は同じですよ(SQL文を変更するだけ)
リレーション等に関することも、SQLでの外部結合等の条件次第ですし。

どちらかと言うと、SQLを勉強されるほうがいいです。

#密かにSQLリファレンス系の本はお勧めですw
INSERT文はテーブル複数(厳密には微妙に違いますが)書けますが、
UPDATE文でテーブル複数同時にっていうのは見た事無いですね〜
私が知らないだけ?(^^;
トレプチェット
会議室デビュー日: 2005/09/04
投稿数: 8
投稿日時: 2006-05-20 07:59
実際には中規模以上のデータベースを操作するには
とはかきましたが、今回の質問対象が中規模とはいっていません。

相変わらず、こんなところに突っ込んでくる人いるんですね
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-20 10:56
僕も最近、複数のテーブルを join した DataTable で Update() メソッドが使えなくて苦しんだのですが、結局 System.Data.OleDb.OleDbCommand,System.Data.OleDb.OleDbDataReader を使って更新しました。
他に良い方法があれば、僕も知りたいです。
うにくま
ベテラン
会議室デビュー日: 2005/11/05
投稿数: 82
投稿日時: 2006-05-20 11:44
Accessであればクエリ、SQLServerやOracleであればビュー経由で
追加・更新が出来ます。
ただし、1対1のような単純なもののみです。

#1対1というのはテーブルではなく、レコードのことです。

[ メッセージ編集済み 編集者: うにくま 編集日時 2006-05-20 16:30 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-20 17:22
引用:

パソコン男さんの書き込み (2006-05-20 07:59) より:
実際には中規模以上のデータベースを操作するには
とはかきましたが、今回の質問対象が中規模とはいっていません。

相変わらず、こんなところに突っ込んでくる人いるんですね



そんなところで引っかかっても…

テーブルが20だろうが200だろうが、
一回の更新でいったいいくつのテーブルを更新するんだろう
多くても10いくかどうかじゃないですか?

それにそういう場合はストアドプロシージャなんかを
呼び出して更新したほうがいい気がする。

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