C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: [SQL]GetSchemaから列の型取得


(過去ログ 102 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■60988 / inTopicNo.1)  [SQL]GetSchemaから列の型取得
  
□投稿者/ asuka (44回)-(2011/07/28(Thu) 15:43:34)

分類:[C#] 

お世話になっております。

GetSchemaを使用して列の型を取得したいと考えています。
#SQL:Microsoft Access2010

下記のようなソースを書いてみたのですが、実際かえってくる値は数値です。
#型の文字列を期待していました。Ex.Integer

この数値と型の対応表を探してもみつからないのですが、使い方が間違っていますでしょうか?

思いの他これといったサンプルが見つからず困っています。


private voidGetSqlDataType(DbConnection con, string tableName, string columnName)
{
 DataTable Columns = con.GetSchema("Columns");
 foreach (DataRow row in Columns.Rows)
 {
  if (row["TABLE_NAME"].ToString() == tableName)
  {
   if (row["COLUMN_NAME"].ToString() == columnName)
   {
    MessageBox.Show(row["DATA_TYPE"].ToString());
   }
  }
 }
return;
}

引用返信 編集キー/
■60990 / inTopicNo.2)  Re[1]: [SQL]GetSchemaから列の型取得
□投稿者/ みきぬ (978回)-(2011/07/28(Thu) 16:11:09)
Scripting Guys によれば、データ型は数値として格納されているそうです。
http://gallery.technet.microsoft.com/scriptcenter/1fed6903-6c6d-4b04-8f3e-7da21b62108c/

定義はこのへん
http://msdn.microsoft.com/en-us/library/ms675318.aspx
引用返信 編集キー/
■60991 / inTopicNo.3)  Re[1]: [SQL]GetSchemaから列の型取得
□投稿者/ shu (886回)-(2011/07/28(Thu) 16:14:20)
No60988 (asuka さん) に返信

.GetSchema("DataTypes")でProviderDbTypeがint,TypeNameがstringなので、これで分かるんじゃないかな?


引用返信 編集キー/
■60994 / inTopicNo.4)  Re[2]: [SQL]GetSchemaから列の型取得
□投稿者/ shu (887回)-(2011/07/28(Thu) 16:46:01)
No60991 (shu さん) に返信
> ■No60988 (asuka さん) に返信
>
> .GetSchema("DataTypes")でProviderDbTypeがint,TypeNameがstringなので、これで分かるんじゃないかな?
>
>
手元にあったaccdbで試してみたら130だけ取得出来なかったけど他は大丈夫そうでした。そんなにいろいろな型を
指定してないので完全ではありませんが。
引用返信 編集キー/
■60996 / inTopicNo.5)  Re[2]: [SQL]GetSchemaから列の型取得
□投稿者/ asuka (45回)-(2011/07/28(Thu) 16:53:22)
■みきぬ さま
貴重な情報ありがとうございます。

これをもとにDictionaryで対応を作成して実装することができました。
m(__)m


■shu さま
こちらも貴重な情報ありがとうございます。

早速確かめてみたところ、TypeNameで型をStringで取得出来ていました。

どちらの方法でも行けることが分かりました。

ありがとうございます。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -