*

備忘録:VB.NET schema.iniの使い方。

メモ。
VB.NETでCSVファイルをDataTableに突っ込むとき
特定の列が勝手に数値型として認識されてしまうのを回避する方法。
schema.iniの活用。

取引先からCSVが飛んでくるのでそれを監視してシステムに取り込む際
ある列だけなぜか数値型として認識されてしまうので
その列に文字列が含まれるような値が入っていた時には
値が取得できないという現象にはまった。

全行を見て判断しているのではなく最小の行だけ?判断して
勝手に数値型として処理されているのかな、と思い…

ダミーのCSVを作って…

SELECT * FROM [ダミー.csv]
UNION ALL
SELECT * FROM [取り込み.csv]
としてみたものの変化なし。 何が基準になってるのか分からない。。
もういっそのこと1件1件データ取り出して処理しようと思ったけど
そんな時に見つけたのがschema.ini

参考サイト 参考サイト

取り込むときのフォルダにschema.iniを作っておいて、
Datatableへ格納すると… ちゃんと型を意識してくれてた!

iniの中身はこんな感じ

—- schema.ini ————————————————-
[取り込むCSV.csv]
ColNameHeader=True  →ヘッダの有無
Format=CSVDelimited  →カンマ区切り。
MaxScanRows=0 →何行目まで取り込むか。 0だと全部。 省略すると25件?
CharacterSet=932  →shift-jis
Col1=注文番号 char width 15
Col2=注文日 Date width 9
Col3=数量 integer
:
———————————————————————–

こんな感じ。
CSVと同じところにしておくのと ファイル名を指定しないといけない点があるので
取り込み時にファイルをリネームする処理を追加したりしたけど…
とりあえずできた。

とりあえず動けばいいw

とっても助かりました。 知ってて当たり前的なものかもしれないけど…。 まだまだ知らないことが多すぎる(゜-゜)

関連記事

Visual Studioのセットアッププロジェクト

社内で使っているVisualStudioは基本は2003、ちょっと進ん...

記事を読む

no image

備忘録:Windows7 Domain Usersの場合の管理者権限実行する

ものすごく苦労したのでメモ。 Windows7環境でVB6.0で...

記事を読む

no image

VB2013.NET Express ODP.NET備忘録

VB2013.NET Express ODP.NETで...

記事を読む



新着記事

久々に更新。内容はたわいもない事。

どうも、更新をさぼっていたわけではなく、ただただ備忘として記録を更新す...

記事を読む

いまさらNULLIFを知る。。

備忘録。 SQLServerの0除算対策。 2008以降から使えるよ...

記事を読む

お花見に行ってきました

大阪 狭山池の桜。 ソメイヨシノではなくコシノヒガンという品種。 ...

記事を読む

再構築したけどネタがないから食べたものでもアップしとく

やる気ないブログでごめんねー お昼ご飯のお弁当。青椒肉絲弁当。 ...

記事を読む

コメント/トラックバック

トラックバック用URL:

コメントフィード




管理人にのみ公開されます



久々に更新。内容はたわいもない事。

どうも、更新をさぼっていたわけではなく、ただただ備忘として記録を更新す...

備忘録:VB.NET schema.iniの使い方。

メモ。 VB.NETでCSVファイルをDataTableに突っ込むと...

いまさらNULLIFを知る。。

備忘録。 SQLServerの0除算対策。 2008以降から使えるよ...

お花見に行ってきました

大阪 狭山池の桜。 ソメイヨシノではなくコシノヒガンという品種。 ...

再構築したけどネタがないから食べたものでもアップしとく

やる気ないブログでごめんねー お昼ご飯のお弁当。青椒肉絲弁当。 ...

→もっと見る

  • 地方都市のソフトハウスでPG.SEの経験を積み現在は某所某社の社内SE。 基本的に飽きやすい性格。 社内SEの日常報告と調べたことを忘れないように記録していく場所。
%d人のブロガーが「いいね」をつけました。