2012-06-12 5 views
0

У меня есть страница прямо сейчас, которая функционирует на 100%, она обновляет базу данных на основе идентификатора, отправленного через querystring. Теперь я хочу, чтобы эта функция выполнялась для КАЖДОЙ строки в базе данных и без отправки запроса.ASP.NET: Loop через базу данных

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

Вы должны быть в состоянии просто удалить статью о WHERE из оператора SQL, а идентификатор параметра. Это обновит каждую строку:

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) 
Смежные вопросы