0

現在、100% 機能するページがあり、クエリ文字列を介して送信された ID に基づいてデータベースを更新します。ここで、クエリ文字列を送信せずに、データベース内のすべての行に対してこの関数を実行したいと考えています。

 Dim amzRepeater As DataRowView = e.Item.DataItem


    Dim myId As String = Request.QueryString("Id")
    Dim amzUrl As String = amzRepeater.Row("AmazonUrl")
    amazonURL.Value = amzUrl


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Dim aHtml As New HtmlWeb
    Dim aDoc As HtmlDocument = aHtml.Load(amazonURL.Value)


    Dim aNode As HtmlAgilityPack.HtmlNode
    aNode = aDoc.DocumentNode.SelectSingleNode("//div[@id='olpDivId']/span[2]")
    Dim UsedPrice As String = aNode.InnerText
    Dim i As Integer = UsedPrice.IndexOf("$")
    UsedPrice = UsedPrice.Substring(i + 1)

    Dim connStr As String = ConfigurationManager.ConnectionStrings("arprimaryConnectionString").ConnectionString
    Dim con As New SqlConnection(connStr)
    Dim cmd As New SqlCommand("UPDATE Amazon SET AmazonUsedPrice = @AmazonUsedPrice, LastUpdated = @LastUpdated WHERE (id = @id)", con)
    cmd.Parameters.AddWithValue("@AmazonUsedPrice", UsedPrice)
    cmd.Parameters.AddWithValue("@LastUpdated", DateTime.Now.ToString)
    cmd.Parameters.AddWithValue("@Id", myId)

    Using con
        con.Open()
        cmd.ExecuteNonQuery()
    End Using

    MsgBox("Update Sucesfull.")
4

1 に答える 1

0

SQL ステートメントからWHERE句とidパラメータを削除するだけでよいはずです。これにより、すべての行が更新されます。

Dim cmd As New SqlCommand("UPDATE Amazon SET AmazonUsedPrice = @AmazonUsedPrice, LastUpdated = @LastUpdated", con)
cmd.Parameters.AddWithValue("@AmazonUsedPrice", UsedPrice)
cmd.Parameters.AddWithValue("@LastUpdated", DateTime.Now.ToString)
于 2012-06-12T05:54:44.633 に答える