c#
  • datagridview
  • 2017-09-24 67 views 0 likes 
    0

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

    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; 
         } 
    

    回答

    0

    Add()方法将添加一个新行。您必须获得对要操纵的行的引用,并将其设置为“单元格”值。

    您不想用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++; 
        }; 
    
    +0

    好的我这样做,但我有10个值。当我使用“for”和rowindex ++时,它只把所有行中的最后一个值。我该如何解决这个问题? –

    +0

    编辑您的问题以显示更新的代码。 – Crowcoder

    +0

    我编辑后.. –

    相关问题