2

我想将我指定的数据添加到列中,但出现错误“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”

private void Button1Click(object sender, EventArgs e)
    {
        var result = _transactionService.GetTransactionReport(DateTime.Now.AddDays(-2), DateTime.Now);
        foreach (var transaction in result)
        {
            for (int r = 0; r < result.Count; r++)
            {
                dataGridView1.Rows[r].Cells[0].Value = transaction.Number;
                dataGridView1.Rows[r].Cells[1].Value = transaction.DateTime;
                dataGridView1.Rows[r].Cells[1].Value = transaction.Customer.Name;
            }
        }
    }

如何将数据添加到行和列?

4

1 回答 1

1

是否在此行抛出错误:

dataGridView1.Rows[r].Cells[0].Value = transaction.Number;

我相信您会收到该错误,因为您正在引用 DataGridView 中不存在的行。有多种方法可以将行添加到 DataGridView。您可以使用该DataGridViewRowCollection.Add方法添加新行并使用来自您的事务对象之一的值填充它:

private void Button1Click(object sender, EventArgs e) {
    var result = _transactionService.GetTransactionReport(DateTime.Now.AddDays(-2), DateTime.Now);
    foreach (var transaction in result) {
        for (int r = 0; r < result.Count; r++) {
            dataGridView1.Rows.Add(new object[] { transaction.Number, transaction.DateTime, transaction.Customer.Name });
        }
    }
}

请注意,此代码假定您的 DataGridView 已经至少有三列。

于 2012-11-09T03:38:06.703 回答