- PR -

データ型の比較(String,Integerなど)

1
投稿者投稿内容
MI
会議室デビュー日: 2004/09/07
投稿数: 15
投稿日時: 2004-09-07 21:45
初めて書き込みします。
よろしくお願いいたします。

現在、VB6からアップグレードウイザードを用いて
VB.NETに移植作業を行っております。

その中の処理として、SQLServerから取得した値の型を判定し、
たとえばdate型であれば、"2004/09/07"というフォーマットにして、
テキストファイルに落とすことを行っています。

VB6では、こんな感じです。(細かい部分は省いております)
--
Select Case objRcdset.Fields(index).Type
Case adDate
strBuffer = Format(objRcdset.Fields(lngLoopCnt2).Value, "YYYY/MM/DD")
End Select
'1レコード書き込み
Print #mlngFileNumber, strWriteData
--

これをVB.NET化したいわけですが、
アップグレードすると、adDate は ADODB.DataTypeEnum.adDate となり、
ADOの型のままとなってしまいます。
このままでも、動けばよいかと思ったのですが、うまく型を判定できません。

DataTableCol = DataTable.Columns(0)
という形でADO.NETらしく、型を取得できるようにはしたのですが、
Select Case文にて比較値とするADO.NET的な表現の型(変な日本語ですみません)が見当たりません。

どなたか、ご存知の方はおられませんでしょうか?
または、より適切な処理がありましたらご教授いただけると幸いです。

よろしくお願いいたします。
(メンバーIDがなぜか未記入になってしまいます。)
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-09-07 22:33
諸農です。

VB.NETをよく知らないのでSelect Case文ではどうなるか判りませんが、
DataColumnクラスのDataTypeプロパティで何とかなりそうですね。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
MI
会議室デビュー日: 2004/09/07
投稿数: 15
投稿日時: 2004-09-08 13:49
Jubeiさんはじめまして。返信ありがとうございます。

>VB.NETをよく知らないのでSelect Case文ではどうなるか判りませんが、
>DataColumnクラスのDataTypeプロパティで何とかなりそうですね。

クラスライブラリを参照し、こんな感じでコーディングしてみました。
--
Select Case dtCol.DataType.ToString
  Case Type.GetType("System.DateTime").ToString
編集処理
End Select
--
他の属性についても同様のやり方で判定できるようです。
このやり方で何とかなりそうです。
どうもありがとうございました。
1

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