更新新列中的datagridview行

时间:2017-09-24 11:41:52

标签: c# datagridview

我正在解析一个网站,我需要在datagridview列和行中放入一些数据。我在第0列的datagridview中向行添加了一些数据,然后我想在第1列中放入一些新数据,而不会丢失旧数据。我尝试下面的代码,但它只是分享我的最后一个值,我的所有行都是相同的。

 foreach (HtmlNode pricesh in parse.SelectNodes("//div[@class='typeface-js realPrice']"))
        {
            string str = pricesh.InnerText;                
            int rowIndex = 0;
            for (rowIndex=0;rowIndex<=dataGridView1.RowCount-1;rowIndex++)
                dataGridView1.Rows[rowIndex].Cells[1].Value = str; 
        }

1 个答案:

答案 0 :(得分:0)

Add()方法将添加一个新行。您必须获得对要操作的行的引用,并将其设置为Cell值。

您不希望使用DBNull.Value覆盖其他列,这会将它们设置为空。

在循环外定义索引,在循环内增加它。 不要遍历foreach中的行,只需将行设置为rowIndex

请注意,如果您不确保网格的行数至少与所选的html节点一样多,则此代码受IndexOutOfRangeException约束。

int rowIndex = 0;
    foreach (HtmlNode pricesh in parse.SelectNodes("//div[@class='typeface-js realPrice']"))
    {
        string str = pricesh.InnerText;                

        dataGridView1.Rows[rowIndex].Cells[1].Value = str; 

        rowIndex++;
    };