【问题标题】:'row' argument cannot be null.Parameter name: row“行”参数不能为空。参数名称:行
【发布时间】: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

标签: c# datatable datarow


【解决方案1】:

我想你想要这样的东西:

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)
    {
        for (int i=0; i < Savestate.vehnochange_list.Count; ++i)
        {
            DataRow dr = dt.NewRow();
            dr["Bus Model"] = Savestate.busmodel_list[i];//0
            dr["Bus Type"] = Savestate.bustype_list[i];//1
            dr["Mileage"] = Savestate.busmileage_list[i];//2
            dt.Rows.Add(dr);
        }

        this.dataGridView2.DataSource = dt;

    }
}

【讨论】:

  • @Michael Post 是的,这很接近。非常感谢。我已经非常接近您的代码编辑了我的代码。查看我编辑的代码。
  • 我很高兴这个答案对你有用。你能投票给它吗?我接近我的下一个目标... :-)
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 2014-05-17
  • 2016-05-14
  • 2015-11-05
  • 2019-05-26
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多