- PR -

visualC# 2005 ExpressEditionの型変換

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/04/15
投稿数: 10
投稿日時: 2006-06-29 20:19
visualC# 2005 ExpressEditionで開発をしているのですが、oracleからNumber型のデータを取得する際に、キャストがうまくいきません。

int num = dr.GetInt32(0);

このような記述ではまずいのでしょうか?
宜しくお願い致します。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-06-29 20:24
「うまくいかない」とは具体的にはどういう状態ですか。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-29 20:36
引用:

未記入さんの書き込み (2006-06-29 20:19) より:

visualC# 2005 ExpressEditionで開発をしているのですが、oracleからNumber型のデータを取得する際に、キャストがうまくいきません。

int num = dr.GetInt32(0);

このような記述ではまずいのでしょうか?


キャストがうまくいかないというよりは、dr.GetInt32(0); 自体がまずいということでしょうか。
GetString メソッドで取得するなどして、中身を確認しましょう。
GetFieldType メソッドで型を確認しましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
会議室デビュー日: 2005/04/15
投稿数: 10
投稿日時: 2006-06-30 10:22
質問がまずくてすみません。
アプリケーションで検索を実行した時に、int num = dr.getInt32(0);の箇所でエラーが発生しました。エラー内容は「指定されたキャストは有効ではありません」と出ます。
GetStringを使っても、「指定されたキャストは有効ではありません」と出ます。
GetFieldTypeを使うと、「System.Decimal」、
GetDataTypeNameを使うと、「DBTYPE_VARNUMERIC」と実行した画面上に表示されます。

以上、何卒宜しくお願い致します。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-06-30 10:26
Nuber型ってInt32なんですか?Decimalだったような・・・。
あと、値がDBNullでないことは確認していますか?

-------------
ですよね。Decimalですよね。

[ メッセージ編集済み 編集者: 一郎 編集日時 2006-06-30 10:27 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-30 11:46
引用:

未記入さんの書き込み (2006-06-30 10:22) より:

GetFieldTypeを使うと、「System.Decimal」、
(snip)
以上、何卒宜しくお願い致します。


ここまでわかれば、自己解決できると思っているのですが... (そう思って書いていたのですが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
会議室デビュー日: 2005/04/15
投稿数: 10
投稿日時: 2006-06-30 20:32
じゃんぬねっとさん、一郎さん、囚人さん、
レベルの低い質問に答えて頂き、誠にありがとうございました。
答えは出てたんですね!
getDecimalで解決しました。
1

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