如何使用循环从datagridview获取数据

时间:2015-08-05 22:36:57

标签: c# excel datagridview

我正在尝试使用for循环从datagridview获取数据,即从datagrid中的行逐个获取数据并放入listview。但我有一个例外 "指数超出范围。必须是非负数且小于集合参数名称的大小:index" 。 datagridview中的数据来自excel表。我有以下代码:

private void button1_Click(object sender, EventArgs e)
 {
listView1.Visible = true;
listView1.View = View.Details;
listView1.GridLines = true;
listView1.FullRowSelect = true;

//Add column header
listView1.Columns.Add("Recipent Number", 500);
listView1.Columns.Add("Status", 100);

for (int i = 0; i <= dataGridView1.RowCount; i++)
{
    //Add items in the listview
    string[] arr = new string[2];
    ListViewItem itm;

    //Add first item
    arr[0] = dataGridView1.Rows[i+1].Cells["F1"].Value.ToString();
    arr[1] = "Send";
    itm = new ListViewItem(arr);
    listView1.Items.Add(itm);

}
}

1 个答案:

答案 0 :(得分:3)

你的for循环条件中有一个off-by-one错误。

将其更改为使用“&lt;”而不是“&lt; =”,如下所示。

for (int i = 0; i < dataGridView1.RowCount; i++)
{
    //Add items in the listview
    string[] arr = new string[2];
    ListViewItem itm;

    //Add first item
    arr[0] = dataGridView1.Rows[i+1].Cells["F1"].Value.ToString();
    arr[1] = "Send";
    itm = new ListViewItem(arr);
    listView1.Items.Add(itm);

}