我正在解析一个网站,我需要在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;
}
答案 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++;
};