【发布时间】:2019-07-31 01:23:20
【问题描述】:
我正在尝试将值从CSV 加载回我的class。然后将值显示到我的datatable。但是,即使我的值已加载到类中并放置在预期的列中,我也会收到错误消息(参见图 1)。错误发生在dt.Rows.Add(dr);。以下是我的代码:
public Newdatagrid()
{
InitializeComponent();
//Do datatable
ds = new DataSet();
dt = new DataTable();
dt.Columns.Add("Bus Model", typeof(string));//0
dt.Columns.Add("Bus Type", typeof(string));//1
dt.Columns.Add("Mileage", typeof(string));//2
if (Savestate.vehnochange_list.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
dr["Bus Model"] = Savestate.busmodel_list[Savestate.busmodel_list.Count];//0
dr["Bus Type"] = Savestate.bustype_list[Savestate.bustype_list.Count];//1
dr["Mileage"] = Savestate.busmileage_list[Savestate.busmileage_list.Count];//2
}
dt.Rows.Add(dr);
this.dataGridView2.DataSource = dt;
}
}
【问题讨论】:
-
为什么要将
Mileage存储为字符串?如果您有看起来像 3 个列表或数组的东西,而不是一个数据表,那么由所有三个内容组成的 List可能更合适 -
dt.Rows.Add(dr);那dr与循环中的不同。dt.Rows.Add(dr);应该在内部foreach。