- PR -

SELECT文で取得したテーブルの項目の型の取得方法

1
投稿者投稿内容
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2005-04-13 17:47
現在VB.Net+SQL Serverを利用しておりますが質問があります
DBからSELECT文でテーブルの内容を取得してDataSetに入れております
そのDataSetの中の各フィールドの型(VARCHARなど)を取得したいのですが
ご存知の方ご教授願います。

Dim ds As DataSet
Dim row As DataRow

--途中省略
For Each row In ds.Tables(0).Rows
ここでrow(index)とかの型を取得したいです
Next
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-04-13 17:54
私も同じようなことを実現したくて、いろいろ試しましたがDataTableからは取得できませんでした。
結局、システムストアドプロシージャ[sp_columns]を実行して列の定義を取得して実現しました。
またSqlConnectionではなくOleDbConnectionを使用しているのであれば
GetOleDbSchemaTable()メソッドでも取得可能です。
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2005-04-13 18:06
burton999さん回答ありがとうございました
システムストアドプロシージャ[sp_columns]を利用するようにいたします。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-04-13 18:51
厳密な型や桁数の情報までは取得できませんが、文字列/数値/日付くらいのレベルで良ければ
ds.Tables(0).Columns(index).DataType
で取得できます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-04-13 20:39
 DbDataAdapterクラスだったかな?の、FillSchemaメソッドで取れます。


 ただし、.NET Frameworkでの型になるような?
_________________
1

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