我有一个c#实验室问题:
这是我的代码todo从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;
}
答案 0 :(得分:1)
看起来您的CSV文件包含无法转换为十进制数据的数据。在调试器中运行它,并在抛出异常时查看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;
答案 1 :(得分:0)
您可以点击此链接从csv文件中读取数据: http://www.codeproject.com/Questions/393163/Csharp-Reading-from-a-CSV-file