0

ac# ラボで質問があります。

これは、csv ファイルからデータを追加するための私のコードです。コンパイル後に、「rows」という名前が現在のコンテンツに存在しないというエラーが表示されます。

foreach (string row in rows)
{
    if (string.IsNullOrEmpty(row)) continue;
    string[] cols = row.Split(',');
    DailyValues v = new DailyValues();

    v.Open = Convert.To*(cols[0]);
    v.High = Convert.To*(cols[1]);
    v.Low = Convert.To*(cols[2]);
    v.Close = Convert.To* (cols[3]);
    v.Volume = Convert.To* (cols[4]);
    v.AdjClose = Convert.To*(cols[5]);
    v.Date = Convert.To*(cols[6]);
    values.Add(v);


    return values;
}    
4

1 に答える 1

1

CSV ファイルには、10 進数に変換できないデータが含まれているようです。デバッガーで実行しrow、例外がスローされるタイミングを確認します。

を使用するDecimal.TryParse()と、戻り値は、例外がスローされることなく変換が成功したかどうかを示します。

編集:

TryParse の例:

Decimal _Open, _High;
if (!Decimal.TryParse(cols[0], out _Open))
{
    Debug.Print("Error on row: {0}", row);
    continue;
}
v.Open = _Open;

if (!Decimal.TryParse(cols[1], out _High))
{
    Debug.Print("Error on row: {0}", row);
    continue;
}
v.High = _High;
于 2012-11-09T03:16:28.737 に答える