We help IT Professionals succeed at work.

Convert VB to C#

digitalwise
digitalwise asked
on
67 Views
Last Modified: 2015-10-19
We have this old code from an ASP website that we are moving over to ASP.NET C# - we are trying to make minimal changes to the old pages since it wasn't part of the contract but we need to swap this out to C# since all of the new stuff is in it.   I have part of it but not the loop piece.

Old code
 For a = 1 to Request.Form("propertyid").Count
strSQL = "Insert into property_assign (assigned_to, propertyid) VALUES ("
strSQL = strSQL & "'" & Request.Form("assigned_to") & "',"
strSQL = strSQL & "'" & Request.Form("propertyid")(a) & "')"

Open in new window


The start of my new code:
foreach (var Properties in Request("propertyid")) { 
            sql2 = "Insert into property_assign (assigned_to, propertyid) VALUES (@0, @1)";
            db.Execute(sql2, Request.Form("username"), Properties.propertyid);

Open in new window


I get Non-invocable member 'WebPageRenderingBase.Request' cannot be used like a method.
Comment
Watch Question

CERTIFIED EXPERT
Top Expert 2010

Commented:
Use [] instead of () in C#.  So, for example, use

Request["propertyid"]

Open in new window


instead of

Request("propertyid")

Open in new window


You'll need to do the same with
Request.Form("username")

Open in new window

Commented:
Not a web guy here but -
Are you missing the count?

Request("propertyid")
or
Request("propertyid").Count
or
Request("propertyid").Count()
something like that maybe

Author

Commented:
Ah yes!   That was dumb since i have written tons of code today - don't know why I missed it.   So now I get

 'char' does not contain a definition for 'propertyid' and no extension method 'propertyid' accepting a first argument of type 'char' could be found (are you missing a using directive or an assembly reference?)

var Properties in Request["propertyid"]

Open in new window


I am not sure how to write that - basically looking for each item in the list from the Request["propertyid"] form field.

Commented:
Request.Form["propertyid"].Length

Author

Commented:
BillyDvD - what is that replacing?

Commented:
Sorry - posted to soon - lol
You need to iterate 'something' that something was originaly the Count for "propertyid" -

So :
for (int i = 0; i < Request.Form["propertyid"].Length; i++)
{
       //---| Do you r string building here |---
}

Commented:
i may need to be 1 for the for loop instead of zero.....

Author

Commented:
BillyDvD - how do I reference the value to save it though?   I need the value of each iteration.

Commented:
for ( int i = 0 ; i < this.Request.Form[ "propertyid" ].Length ; i++ )
            {
                string strSQL = "Insert into property_assign (assigned_to, propertyid) VALUES ('" + this.Request.Form[ "assigned_to" ] + "','" + this.Request.Form[ "propertyid" ][ i ] + "')";
                //---| Now use the string..... |---
            }

It is the [i] now - it was (a)

Open in new window

Author

Commented:
That is giving me integers and not the actual value...

sql2 = "Insert into property_assign (assigned_to, propertyid) VALUES (@0, @1)";
                db.Execute(sql2, this.Request.Form["username"], this.Request.Form["propertyid"][i]);

Open in new window

Author

Commented:
I just looked at this more closely - this is a comma-delimited list of items - they are longer than one character so the length thing isn't going to work.  IT looks like
Asdasd_123123, ASD_54123, FAS_2141...

Commented:
Not sure if this will help:

 string strSQL = string.Empty;

            if ( this.Request.Form[ "propertyid" ].Length > 0 )
                strSQL = "Insert into property_assign (assigned_to, propertyid) VALUES ('" + this.Request.Form[ "assigned_to" ] + "','" +
                     this.Request.Form[ "propertyid" ] + "')";

Open in new window

Commented:
Do you need to iterate each piece of the comma delimeted list?
I am not sure what you are trying to "get" from this loop.
If you had the input to the loop and the outputs pre code change - then we can reverse engineer this much easier.

Author

Commented:
I need the values from the list because we are creating a record for each of the properties.    The code was super simple in VB...  

 For a = 1 to Request.Form("propertyid").Count
strSQL = "Insert into property_assign (assigned_to, propertyid) VALUES ("
strSQL = strSQL & "'" & Request.Form("assigned_to") & "',"
strSQL = strSQL & "'" & Request.Form("propertyid")(a) & "')"

Open in new window

Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Commented:
digitalwise - Just to let you know, I may not be available the rest of this evening. I may be able to pick this back up around 6AM CST though.

Thanks
BillyDvD

Author

Commented:
This was perfect!

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.