CSVファイルをDataTableに取込をしたいです
- 題名: CSVファイルをDataTableに取込をしたいです
- 著者: omni
- 日時: 2014/01/15 16:50:41
- ID: 32065
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: CSVファイルをDataTableに取込をしたいです
- 著者: とん。
- 日時: 2014/01/15 18:41:35
- ID: 32066
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: CSVファイルをDataTableに取込をしたいです
- 著者: WebSurfer
- 日時: 2014/01/15 22:48:42
- ID: 32067
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: CSVファイルをDataTableに取込をしたいです
- 著者: omni
- 日時: 2014/01/16 16:47:36
- ID: 32077
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: CSVファイルをDataTableに取込をしたいです
- 著者: WebSurfer
- 日時: 2014/01/17 11:22:21
- ID: 32078
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
CSVファイルがデスクトップにあります。このCSVファイルをDataTableに取り込みたいと思います。
CSVは下記のようなデータになります。
CSVDATA.csv
"aiu","eo","kaki",3,4
"aaa","bbb","ccc",,1
"abc","def","hij",4,
DataTableはあらかじめ、「DataSet.xsd」で定義されています。
DataTableの定義は下記になります。
TABLE1
列名(データ型)
col1(string)
col2(string)
col3(string)
col4(int)
col5(int)
コードは下記のようなコードを書きました。
配列がString型の為に、4列目、5列目の値を読み取ろうとすると
「ArgumentExceptionはハンドルされませんでした。入力文字列の形式が正しくありません。列col4は格納できませんでした。必要な型はInt32です。」
というメッセージが表示されます。
メッセージ通り、Int32型のデータをセットしないといけないのに、空文字が代入されようとしているのでエラーが発生しました。
エラーを発生しないようにするには、どのように対応したらよろしいでしょうか?
よろしくお願いします。
//==============================================================================================================
//CSVファイル読取 TEXTBOXにはパスが設定されている
TextFieldParser csvParser = new TextFieldParser(this.TEXTBOX.Text, Encoding.GetEncoding("shift_jis"));
//CSV1行読み取り用
string[] csvRowData;
//データ読込
while (!csvParser.EndOfData)
{
//1行読込
csvRowData = csvParser.ReadFields();
//行追加
DataRow dtRow = dt.NewRow();
//ReadFieldsで読み取った1行をデータテーブルに追加する。
for (int index = 0; index < dt.Columns.Count; index++)
{
if (csvRowData[index] == null)
{
csvRowData[index] = "0";
//2行目でエラー発生}
dtRow[index] = csvRowData[index];
}
dt.Rows.Add(dtRow);
}
//==============================================================================================================