Looping through a request.querystring in VB.NET
25,170
Solution 1
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
Solution 2
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
Solution 3
Dim productID = Request.Querystring("ProductID")
Dim quantity = Request.Querystring("Quantity")
Solution 4
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))
Solution 5
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
Author by
personaelit
Self-taught programmer with a B.A. in Creative Writing.
Updated on March 13, 2020Comments
-
personaelit about 4 years
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?
-
James over 15 yearsVB doesn't support square brackets, that's C#.