私はかなり新しいコーダーです。私が取り組んでいることはすべて自分自身を完全に教えてくれました。私はCSVファイルを読み込み、ついにはSQLサーバに出力しようとしています。 Visual Studio 2015でFileHelpersを使用して実装することに決めました。C#でcsvファイルを読み込むときにコンマ区切りとカラム数に問題があります
私は、データそのものにカンマ(例:9,500)が含まれているという問題があります。私は多くの人々が数の周りに引用符を入れてお勧めします知っている。しかし、私は数字を入力するのではない。そのファイルはちょうど私にそのように送られ、私はSQLサーバーにそれを入力するコードを書くことになっています。 引用符以外の問題を修正する方法はありますか?また、私の行のいくつかは他よりも短いです。
ex: Joe, John, Jim, Ben
35, 42, 35, 60
A, B, C, D
40, 50
したがって、例えば、その最後の行は、値の同量を有していません。それらもnullではありません。私はすでにヌル値を扱っています。
それはちょうどそれらを含んでいない、と私は私のコードを実行している行くと、私はエラー -
を「ライン取得:29カラム:4.区切り記号 『』が見つかりません
フィールドの 'Hours'(レコードのフィールド数が少ない、区切り文字が間違っている、または次のフィールドをオプションとしてマークする必要があります)。
どうすればこれらの問題を解決できますか? 9,500などのカンマ値を含む行を削除すると、不完全な行も削除すると、コードが完全に機能します。しかし、私はそれがすべてのデータのために働く必要があります。ありがとう
あなたは修正できません!ファイルプロバイダに標準のCSVファイルを提供するよう依頼する必要があります。列は変化しません。値がなければ、 '、'は残っているはずです...カラム値は '、'が含まれていると予想される値の場合は 'quote'で囲まれます。あるいは、 ';'のような別のセパレータに切り替える – techspider
'9,500 'が1つまたは2つの値であるかどうかをどのように知ることができますか? – recursive
"ファイルはちょうど私にそのように送信されます"ここに問題があります。値にエスケープされていない '、'が含まれている場合、 '、'でプロパティを区切ることはできません。 – Xiaoy312