4

I am trying to loop through a query string and pull out certain values as in:

?ProductID=1234&ProductID=4321&Quantity=1

For each value next to ProductID I want to execute some logic. But I am not sure how to get to the values. Any ideas?

personaelit
  • 1,633
  • 3
  • 31
  • 59

6 Answers6

7

When your query string has more than one value with the same key you can use the NameValueCollection.GetValues method which returns a string array:

dim productID as string
for each productID  in Page.Request.QueryString.GetValues("ProductID")
  ' do something with productID
next productID  
Jason DeFontes
  • 2,235
  • 15
  • 14
5

Here is some untested psuedo code that should work for the code behind on the page. I hope this helps.

dim key as string
dim list as new arraylist()
for each key in Page.Request.QueryString.Keys
 if key = "ProductID" then
   list.add(Page.Request.QueryString(key))
 end if
next key

' do somthing with the list of product id's
James
  • 12,636
  • 12
  • 67
  • 104
2
Dim productID = Request.Querystring("ProductID")
Dim quantity = Request.Querystring("Quantity")
bkaid
  • 51,465
  • 22
  • 112
  • 128
Chris Ballance
  • 33,810
  • 26
  • 104
  • 151
1
Dim sQS as String = Request.QueryString.ToString
For Each eItem In Split(sQS, "&")
Dim sName As String = Left(eItem, InStr(eItem & "=", "=") - 1)
Response.Write(sName _
& " = " & Request.QueryString(sName) _
& "<br>")
Next

and this is shorter but based on the same idea

For Each Key As String In Request.QueryString.Keys
Response.Write(Key & " = " & Request.QueryString(Key) & "<br>")
Next
madcolor
  • 8,105
  • 11
  • 51
  • 74
1

Try this one. Only works in VB9.

Dim queryString = GetQueryString()
queryString = queryString.SubString(1) 'Remove ?
Dim ids = queryString. _
  Split("&"c). _
  Select(Function(x) x.Split("="c)). _
  Where(Function(x) x(0) = "ProductId" ). _
  Select(Function(x) x(1))
JaredPar
  • 733,204
  • 149
  • 1,241
  • 1,454
0

For read Value of get Parameter use Request.QueryString.Item("param")

PurTahan
  • 789
  • 8
  • 24