2012-06-12 62 views
0

我现在有一个页面,功能100%,它更新数据库,基于通过查询字符串发送的ID。现在,我想让这个函数对数据库中的每一行执行,而不需要发送查询字符串。ASP.NET:通过数据库循环

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.") 
+0

您希望每行都具有相同的@AmazonUsedPrice? – rikitikitik

回答

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)