-2

約100の異なるエントリを持つDataGridがあり、各行をループして、データベース(フィールドはURL)から文字列にフィールドを取得したいと考えています。基本的に、 HTMLAgilityPackですが、データベースの各行に対してこれを実行し、返された画面スクレイピングに基づいてデータベースを更新したいと思います。

  1. 各行をループします
  2. 各URLを文字列に保存する
  3. HtmlAgilityPackを使用して、画面のスクレイピングを実行します
  4. ステップ3から返された値でデータベースフィールド「Price」を更新します
4

1 に答える 1

0

データグリッド内のすべての行をループして、特定の列の値を文字列のリストに追加できます。

var hyperlinks = new List<string>();
var indexOfColumn = 2; 
foreach (DataGridViewRow row in dgvDataGridView.Rows)
{
  hyperlinks.Add(((DataGridViewCheckBoxCell)row.Cells[indexOfColumn]).Value);
}

次に、ハイパーリンク リストを使用して、手順 4 で必要に応じてデータベースを更新します。foreach ステートメント内でデータベースを更新でき、わざわざハイパーリンクのリストに追加する必要はありませんが、100 行の場合、非常にコストがかかる可能性があります。バッチ処理などを行っているため、実際には 20 回程度の更新ごとにデータベースにヒットするだけです。

于 2012-06-05T13:29:08.433 に答える