- PR -

ADO.NET DataAdapter作るときにオブジェクト参照エラーが出る

1
投稿者投稿内容
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2003-11-10 10:35
OleDbDataAdapterにてデータベースとの接続をする際に出てくるエラーについて慰問があり書込みさせてもらいました。
流れを言いますと
1.OleDbDataAdapterをクリックして作成開始
2.接続を確立する
3.クエリビルダでSQL文を作成
4.ウィザードの結果の表示が出る ここからが問題になります

このときに、黄色い三角のビックリマークが出て、「SELECT ステートメントは作成されました」で、その下に「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と出てきます。

「オブジェクト〜」というのは初期化がされていない場合に出てくるコメントととらえていたので、この段階でこのメッセージが出てくるのが不思議でなりません。
これを無視して作成していった場合には実際にデータを読み込むロジックの部分で
oleDbDataAdapter.SelectCommand.Parameters["HOST_CD"].Value = HOST_CD;
等と書いた部分で、
IndexOutOfRangeException エラーが出てきます。

原因としては、テーブル選択時に、ビューから取ってくるのですが、ビューが他のDataAdapterで使われているとこのメッセージが出てきます。しかたないので、新たにビューを作成して作っているのですが、無駄なビューがたくさん出てきて本当にこんなやり方でいいのかと疑問に思っています。

.netでは色々苦労していますが、このデータアクセスへの部分が、一番難しい気がします。
リファレンスを見ても、自動生成や手動生成など色々こんがらがってきます。

で、お聞きしたいのは
1.オブジェクト参照がオブジェクト インスタンスに設定されていません。」と出る理由
2.データアクセスの皆さんのやり方(参考としたページや自分のやり方など)

この二点を宜しくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-10 11:03
引用:

たけくんさんの書き込み (2003-11-10 10:35) より:

2.データアクセスの皆さんのやり方(参考としたページや自分のやり方など)


 1の方は、たぶんアクセスできなかった・・・んでしょうねぇ?

 私は最初はウイザードを使っていましたが、
・変更するときにしにくい
・他のプロジェクトに持っていけない
・OracleとSQL Server両対応しなければならず、そうするとコントロールであふれる

などの理由により、自分でグリグリ書いています。
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2003-11-10 13:15
Jittaさん、書込みありがとうございます。

Jittaさんでは、私のような「オブジェクト参照エラー」などは
出たことがないんでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-10 13:39
引用:

たけくんさんの書き込み (2003-11-10 13:15) より:

Jittaさんでは、私のような「オブジェクト参照エラー」などは
出たことがないんでしょうか?


 ビューは使わず、DataAdapterを構成するときに結合していました。その状況では、でたことはないです。今はビューを使っていますが、SQL文はDataAdapterを生成するクラスを作ってその中で設定していますが、今のところ発生していません。メソッドの中身を記述せずに「オブジェクト参照エラー」を多発させていますが、それは論外ですよね。
1

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