csvデータ読み込み時に、あるデータだけ取り込むことができないです。
Visual Studio2017を用いてC#を使って、在庫データを取り込みExcelに在庫管理表
を出力するシステムを作っています。
その際に、日ごとで在庫データを取り込み、その都度在庫管理表を更新していく
システムを作りたいです。
上記の機能を実装中に他のデータであればできていたcsvデータの取り込みが
自分以外の人からもらったデータで行うとエラーがでてしまうようになりました。
該当のソースコード
public int CSVデータを取り込む(string PATH, ds在庫 ds)
{
int N = 0;
StreamReader str = new StreamReader(PATH, Encoding.GetEncoding(932));
string[] stb;
stb = str.ReadLine().Split(',');
while (str.Peek() != -1)
{
stb = str.ReadLine().Split(',');
string 発行番号 = stb[5]; string 抽出1 = "発行番号='" + 発行番号 + "'"; 抽出1 += " AND 指定日='" + DateTime.Parse(stb[3]).ToShortDateString() + "'"; DataRow[] rows = ds.出庫.Select(抽出1); if (rows.Length == 0) { DataRow row = ds.出庫.NewRow(); row["受注者"] = stb[0]; row["便"] = stb[2]; row["指定日"] = DateTime.Parse(stb[3]).ToShortDateString(); row["発行番号"] = stb[5]; 追加する(row, ds); N++; } } str.Close(); return N; }
エラーメッセージ
型 'System.FormatException' のハンドルされていない例外が mscorlib.dll で発生しました
追加情報: 文字列は有効な DateTime ではありませんでした。
扱っているデータ
上部にヘッダーがあり、このようなデータが1820行ある中一行以上消すだけで正常に動きました。
試したこと
もらったデータのどの行でも、一行以上削除すると正常にcsvデータの取り込みをしてくれました。
また、csvデータの中の一行を削除すると70KBほど容量が減るのも何か問題があるのでしょうか。
プログラミングが未熟であるため、もしよければ助言を頂きたく思い投稿させていただきました。
どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー