備忘録: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、ちょっと進ん...
-
-
備忘録:Windows7 Domain Usersの場合の管理者権限実行する
ものすごく苦労したのでメモ。 Windows7環境でVB6.0で...
-
-
VB2013.NET Express ODP.NET備忘録
VB2013.NET Express ODP.NETで...
新着記事
-
-
【備忘録】WordPressをPHP8.0に上げたらContactFormが動かなくなった。
久々の更新。 会社で使ってるWordpressの環境をPHP8...
-
-
備忘:GWのさわやかの待ち時間
5/4 さわやか鴨江店。 開店前に並んで発券システムで順番ゲット。開...
-
-
【備忘録】Abema大相撲中継で使われてる曲
メインテーマ 注目力士 一つ前のテーマ曲 初代のテーマ曲の...
-
-
久々に更新。内容はたわいもない事。
どうも、更新をさぼっていたわけではなく、ただただ備忘として記録を更新す...
PREV : いまさらNULLIFを知る。。
NEXT : 久々に更新。内容はたわいもない事。
コメント/トラックバック
トラックバック用URL:
コメントフィード