- PR -

新規作成したテーブルにデータをFillしたい。

1
投稿者投稿内容
しっぽ。
会議室デビュー日: 2005/08/14
投稿数: 5
投稿日時: 2005-09-11 23:15
再びお世話になります。
動作環境
Win2000,Oracle10g,VS.NET2002(VB.NET)
やりたいこと
自作したテーブルに、ODPを使ってOracleのストアドプロシージャを実行し戻り値(複数行)をデータテーブルに格納したい。

関係していると思われる部分のコードを記載します。

'データセット作成
Dim dsTest As New DataSet
Private dtTest As DataTable = dsTest.Tables.Add("dtTest")
'データテーブルへカラムを追加
Dim colId As DataColumn = dtTest.Columns.Add("ID", GetType(String))
Dim colName As DataColumn = dtTest.Columns.Add("氏名", GetType(String))

'コマンドを定義
Dim cmdTest As New OracleCommand("package.procedure", conn)
'コマンドタイプを宣言
cmdTest.CommandType = CommandType.StoredProcedure
'データアダプタを作成
Dim daTest As New OracleDataAdapter(cmdTest)
'データセットにデータを格納
daTest.FillSchema(dsTest, SchemaType.Mapped, "dtTest")
daTest.Fill(dsTest, "dtTest")

OracleDataReaderを使ってデータを取得してみましたが、DBNullで例外が発生して対応が必要になりFillでやっています。
msdnを参考にコーディングしているのですが、どうしても自作したカラムの後にデータ列が作成され、自作したカラムにデータが入りません。
どうぞよろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-12 09:01
こんにちは、じゃんぬ です。

引用:

しっぽ。さんの書き込み (2005-09-11 23:15) より:

OracleDataReaderを使ってデータを取得してみましたが、
DBNullで例外が発生して対応が必要になりFillでやっています。


これがどういうことなのか、わからないのですが...


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
paupau
会議室デビュー日: 2005/08/24
投稿数: 13
投稿日時: 2005-09-12 11:58
マッピングかな〜?
SchemaTypeをSourceにしてみるとかっ

trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-09-12 14:12
SchemaType.Mappedを使用すると、TableMapingsが適用されますが、この設定はありますでしょうか? もしなければ、列が追加されると思います。
しっぽ。
会議室デビュー日: 2005/08/14
投稿数: 5
投稿日時: 2005-09-15 23:40
皆さん返信ありがとうございます。
結局の所考えていたのと違う方法で行うことにしました。
え〜っと、やりたかったことはマッピングに当たると思います。
trapemiyaさんがご指摘のとおりTableMapingsを設定していませんでした。

じゃんぬねっとさん、説明不足ですいません。
>OracleDataReaderを使ってデータを取得してみましたが、
>DBNullで例外が発生して対応が必要になりFillでやっています。

Dim odr As OracleDataReader
odr = cmd.ExecuteReader
odr.GetString(0)
こんな感じにしたときにNull対策をしていなかったのです。
1

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