【发布时间】:2019-11-10 21:28:58
【问题描述】:
很快,我正在尝试将 csv 文件导入 datatable 。 我正在添加这样的列
DataTable data = new DataTable();
data.Columns.Add("ID", typeof(string));
data.Columns.Add("Name", typeof(string)).MaxLength = 150;
data.Columns.Add("Last name", typeof(string));
然后:
using (var reader = new StreamReader(file.InputStream))
{
DataRow row;
var headers = reader.ReadLine();
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] value = line.Split(',');
if (value.Length == data.Columns.Count)
{
row = data.NewRow();
row.SetField(0, ParseInt(value[0]));
row.SetField(1, value[1]);
row.SetField(2, value[2]);
//and so on
}
如果硬编码的标题与导入的文件相同,请提供一种验证标题的方法? PS 对长度的验证不是很好。有时,如果 CSV 中的最后一列是 emty,则最后一列不计算在内。
【问题讨论】:
-
我不清楚您所说的“验证标头”是什么意思:计算它们?除此之外还有什么重要的?出于各种原因,您最好使用已建立的 CSV 库而不是依赖
string.Split()。另外,Id真的是一个字符串吗?如果它是绑定到数据库的,你应该从目标表创建数据表