Results 1 to 13 of 13

Thread: Need help translating - C# to VB.net

  1. #1

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Exclamation Need help translating - C# to VB.net

    I recieved some help with my earlier casting issue froma c# guy, he send me this:

    Code:
    //I don’t know what that structure is.  You should not need to create any new classes beyond what is created for you when you add the web reference.  I also don’t understand how Dim works in VB.net.  In C# it works like this…
    
    // Declare a variable of type DataOfferType
    DataOfferType dot;
    
    // Cast the first element of the array to DataOfferType (assuming that the first element is known to be DataOfferType)
    
    dot = (DataOfferType)offers[0];
    
    //where offers is the OfferType array returned from the QueryOffers method.
    I translated to this:

    VB Code:
    1. Dim Offers() As WebReference.DataOfferType
    2. Dim dot As WebReference.DataOfferType
    3. dot = CType(Offers(0), WebReference.DataOfferType)

    However I get this error:

    Code:
    Error     1          Class 'WebReference.DataOfferType' cannot be indexed because it has no default property.            C:\WebDev\ws_services\WebSite8\Default.aspx.vb        86         25         C:\...\WebSite8\
    They tell me to add the New keyword to the dim statement of offers. When I do this, I get a new error:

    Code:
    Error     1          Arrays cannot be declared with 'New'.     C:\WebDev\ws_services\WebSite8\Default.aspx.vb        19         25            C:\...\WebSite8\
    Without the Array these is no way to cast to the correct record. Is there anyone else there that knows vb.net that can tell me why this is not working?

  2. #2
    Frenzied Member
    Join Date
    Jul 2005
    Posts
    1,521

    Re: Need help translating - C# to VB.net

    I think the issue is that you don't initialize offers() to anything before you assign the first index to dot.

    With the 3 lines you've posted offers(), which means offers(0) does not exist. You need to assign something to offers().
    Visual Studio Team Edition 2005
    GDI+ Links: Bob Powell VB.Net Heaven
    API Links: All API Pinvoke.Net
    VB6 to VB.Net: Visual Basic 6 to .NET Function Equivalents (Thread)

  3. #3
    Code Monkey wild_bill's Avatar
    Join Date
    Mar 2005
    Location
    Montana
    Posts
    2,993

    Re: Need help translating - C# to VB.net

    VB Code:
    1. Dim dot As WebReference.DataOfferType = WebReference.DataOfferType.Offers(0)

  4. #4

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Exclamation Re: Need help translating - C# to VB.net

    Guys,

    Thanks! for your fast response! I truely am impressed. I am going to post the entire class so you can see what I am doing, or NOT doing. Thank you again for all your help.


    VB Code:
    1. Partial Class _Default
    2.     Inherits System.Web.UI.Page
    3.  
    4.     Sub sendQueryOffers()
    5.         Dim strAddr As New WebReference.UnparsedUSAddressType
    6.         Dim CableServiceEnum As New WebReference.CableServiceEnum
    7.         Dim AllServiceEnum As New WebReference.AllServiceEnum
    8.         Dim strAffType As New WebReference.AffiliateType
    9.         Dim origAffType As New WebReference.AffiliateType
    10.         Dim Privacy As New WebReference.PrivacyNoticeEnum
    11.         Dim retAddr As WebReference.ParsedUSAddressType = Nothing
    12.         Dim intTrackingID As Integer
    13.         Dim strCableServiceReq() As WebReference.CableServiceEnum = New WebReference.CableServiceEnum(0) {}
    14.         Dim strAllService() As WebReference.AllServiceEnum = New WebReference.AllServiceEnum(0) {}
    15.         Dim strPhone As String = "0000000000"
    16.         Dim strLanguage As String = "en-us"
    17.         Dim refWeb As New WebReference.QueryOffersService
    18.         Dim msoffers() As WebReference.MSOOffersResponseType
    19.         Dim Offers() As New WebReference.DataOfferType
    20.         'Dim offer As OffersResponse = OffersResponse.DownloadSpeed
    21.  
    22.         'Dim myType As Type = Type.GetType(MyControlInstance)
    23.         'Define Passed Variables
    24.         strCableServiceReq(0) = CableServiceEnum.CableHighSpeedData
    25.  
    26.         'Subscriber service
    27.         strAllService(0) = AllServiceEnum.CableHighSpeedData
    28.  
    29.         'Originating Affiliate
    30.         origAffType.AffiliateID = Nothing
    31.         origAffType.SalesPersonID = Nothing
    32.  
    33.         'Affiliate details
    34.         strAffType.AffiliateID = Convert.ToInt32("122100")
    35.         strAffType.SalesPersonID = "0"
    36.         strAffType.StoreID = "0"
    37.         strAffType.G2BVersion = Convert.ToDecimal(4.0)
    38.  
    39.         'Address details
    40.         strAddr.AddressLine = address.Text
    41.         strAddr.City = ""
    42.         strAddr.State = ""
    43.         strAddr.Zip = zip.Text
    44.  
    45.         'Load query and send
    46.         refWeb.Url = "https://www.xxxxxxxxxx.com/QueryOffers/QueryOffers.asmx"
    47.         Dim Resp
    48.  
    49.         Resp = refWeb.QueryOffers(strAffType, Nothing, strAddr, WebReference.PrivacyNoticeEnum.OptIn, strCableServiceReq, strAllService, strPhone, strLanguage, retAddr, msoffers, intTrackingID)
    50.  
    51.         Dim msot, msoi, msoa, saddress, msoItems, msoAddressSuggest, msooffers
    52.  
    53.         Try
    54.             msooffers = -1
    55.             msoItems = -1
    56.             msooffers = msoffers(0).Items.Length - 1
    57.             msoItems = msoffers(0).Items.Length - 1
    58.             Exit Try
    59.         Catch
    60.         End Try
    61.  
    62.         Try
    63.             msoAddressSuggest = -1
    64.             msoAddressSuggest = msoffers(0).AddressSuggestion.Length - 1
    65.             Exit Try
    66.         Catch
    67.         End Try
    68.  
    69.         If msoAddressSuggest = -1 And msoItems = -1 Then
    70.             Response.Write("Nothing to do.")
    71.         End If
    72.  
    73.         If msoAddressSuggest <> -1 Then
    74.             ReDim saddress(msoffers(msot).AddressSuggestion.Length)
    75.             For msoa = 0 To msoffers(msot).AddressSuggestion.Length
    76.                 saddress(msoa) = msoffers(msot).AddressSuggestion(msoa).AddressLine & " " & msoffers(msot).AddressSuggestion(msoa).Suite & " " & msoffers(msot).AddressSuggestion(msoa).City & ", " & msoffers(msot).AddressSuggestion(msoa).State & " " & msoffers(msot).AddressSuggestion(msoa).Zip & "-" & msoffers(msot).AddressSuggestion(msoa).Zip4
    77.                 Response.Write(saddress(msoa))
    78.             Next
    79.             Exit Sub
    80.         Else
    81.  
    82.         End If
    83.         'Response.Redirect("Today.html")
    84.         For msoi = 0 To msoffers(0).Items().Length - 1
    85.             Dim dot As WebReference.DataOfferType
    86.             dot = CType(Offers(0), WebReference.DataOfferType)
    87.             'Dim OffersR As WebReference.DataOfferType = DirectCast(OffersR, WebReference.DataOfferType)
    88.  
    89.             Response.Write(dot.DownloadSpeed)
    90.  
    91.             Try
    92.                 Response.Write(msoffers(0).Items(msoi).MarketingInfo.Main & "<br>")
    93.             Catch
    94.             End Try
    95.             Response.Write(FormatCurrency(msoffers(0).Items(msoi).Price.Value, 2) & "<BR>")
    96.             Response.Write("<-----------------------------------------------><BR><BR>")
    97.         Next msoi
    98.  
    99.     End Sub
    100.  
    101.     Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Button1.Click
    102.         Call sendQueryOffers()
    103.     End Sub
    104. End Class

  5. #5
    Code Monkey wild_bill's Avatar
    Join Date
    Mar 2005
    Location
    Montana
    Posts
    2,993

    Re: Need help translating - C# to VB.net

    Does this give you a compiler error?
    VB Code:
    1. For each dot As WebReference.DataOfferType in offers
    2. Response.Write(dot.DownloadSpeed)
    3. Next

  6. #6
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Need help translating - C# to VB.net

    Here is a code converter that works decently well.

    http://www.developerfusion.co.uk/uti...sharptovb.aspx
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  7. #7

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Re: Need help translating - C# to VB.net

    Quote Originally Posted by RobDog888
    Here is a code converter that works decently well.

    http://www.developerfusion.co.uk/uti...sharptovb.aspx

    Yes, I have used it, but it did not help in this situation.

  8. #8

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Re: Need help translating - C# to VB.net

    Quote Originally Posted by wild_bill
    Does this give you a compiler error?
    VB Code:
    1. For each dot As WebReference.DataOfferType in offers
    2. Response.Write(dot.DownloadSpeed)
    3. Next
    'dot' Yes, Hides a variable in an enclosing block.

  9. #9
    Code Monkey wild_bill's Avatar
    Join Date
    Mar 2005
    Location
    Montana
    Posts
    2,993

    Re: Need help translating - C# to VB.net

    replace this code:
    VB Code:
    1. Dim dot As WebReference.DataOfferType
    2.             dot = CType(Offers(0), WebReference.DataOfferType)
    3.             'Dim OffersR As WebReference.DataOfferType = DirectCast(OffersR, WebReference.DataOfferType)
    4.  
    5.             Response.Write(dot.DownloadSpeed)
    with my code and try to compile.

  10. #10

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Re: Need help translating - C# to VB.net

    Quote Originally Posted by wild_bill
    replace this code:
    VB Code:
    1. Dim dot As WebReference.DataOfferType
    2.             dot = CType(Offers(0), WebReference.DataOfferType)
    3.             'Dim OffersR As WebReference.DataOfferType = DirectCast(OffersR, WebReference.DataOfferType)
    4.  
    5.             Response.Write(dot.DownloadSpeed)
    with my code and try to compile.
    Yes I did, it will not let me execute or compile (asp.net front end to a .net web service), it generates that error I referenced above.

  11. #11

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Re: Need help translating - C# to VB.net

    Quote Originally Posted by mpdeglau
    I think the issue is that you don't initialize offers() to anything before you assign the first index to dot.

    With the 3 lines you've posted offers(), which means offers(0) does not exist. You need to assign something to offers().
    The issue is I do not know how many offers will be returned to me.

  12. #12

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Re: Need help translating - C# to VB.net

    Updated code, New error:

    System.MissingMemberException was unhandled by user code
    Message="No default member found for type 'Integer'."
    Source="Microsoft.VisualBasic"
    StackTrace:
    at Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers(String& MemberName, Boolean ReportErrors)
    at Microsoft.VisualBasic.CompilerServices.NewLateBinding.CallMethod(Container BaseReference, String MethodName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, BindingFlags InvocationFlags, Boolean ReportErrors, ResolutionFailure& Failure)
    at Microsoft.VisualBasic.CompilerServices.NewLateBinding.InternalLateIndexGet(Object Instance, Object[] Arguments, String[] ArgumentNames, Boolean ReportErrors, ResolutionFailure& Failure)
    at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateIndexGet(Object Instance, Object[] Arguments, String[] ArgumentNames)
    at _Default.sendQueryOffers() in C:\WebDev\ws_services\WebSite8\Default.aspx.vb:line 87
    at _Default.Button1_Click1(Object sender, ImageClickEventArgs e) in C:\WebDev\ws_services\WebSite8\Default.aspx.vb:line 101
    at System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e)
    at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)
    at System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
    at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    VB Code:
    1. Partial Class _Default
    2.     Inherits System.Web.UI.Page
    3.  
    4.     Sub sendQueryOffers()
    5.         Dim strAddr As New WebReference.UnparsedUSAddressType
    6.         Dim CableServiceEnum As New WebReference.CableServiceEnum
    7.         Dim AllServiceEnum As New WebReference.AllServiceEnum
    8.         Dim strAffType As New WebReference.AffiliateType
    9.         Dim origAffType As New WebReference.AffiliateType
    10.         Dim Privacy As New WebReference.PrivacyNoticeEnum
    11.         Dim retAddr As WebReference.ParsedUSAddressType = Nothing
    12.         Dim intTrackingID As Integer
    13.         Dim strCableServiceReq() As WebReference.CableServiceEnum = New WebReference.CableServiceEnum(0) {}
    14.         Dim strAllService() As WebReference.AllServiceEnum = New WebReference.AllServiceEnum(0) {}
    15.         Dim strPhone As String = "0000000000"
    16.         Dim strLanguage As String = "en-us"
    17.         Dim refWeb As New WebReference.QueryOffersService
    18.         Dim msoffers() As WebReference.MSOOffersResponseType
    19.         'Dim Offers() As WebReference.DataOfferType
    20.         'Dim offer As OffersResponse = OffersResponse.DownloadSpeed
    21.         Dim dot As WebReference.DataOfferType
    22.  
    23.         'Dim myType As Type = Type.GetType(MyControlInstance)
    24.         'Define Passed Variables
    25.         strCableServiceReq(0) = CableServiceEnum.CableHighSpeedData
    26.  
    27.         'Subscriber service
    28.         strAllService(0) = AllServiceEnum.CableHighSpeedData
    29.  
    30.         'Originating Affiliate
    31.         origAffType.AffiliateID = Nothing
    32.         origAffType.SalesPersonID = Nothing
    33.  
    34.         'Affiliate details
    35.         strAffType.AffiliateID = Convert.ToInt32("122100")
    36.         strAffType.SalesPersonID = "0"
    37.         strAffType.StoreID = "0"
    38.         strAffType.G2BVersion = Convert.ToDecimal(4.0)
    39.  
    40.         'Address details
    41.         strAddr.AddressLine = address.Text
    42.         strAddr.City = ""
    43.         strAddr.State = ""
    44.         strAddr.Zip = zip.Text
    45.  
    46.         'Load query and send
    47.         refWeb.Url = "https://www.xxxxxxxxxxxxx.com/QueryOffers/QueryOffers.asmx"
    48.         Dim Resp
    49.  
    50.         Resp = refWeb.QueryOffers(strAffType, Nothing, strAddr, WebReference.PrivacyNoticeEnum.OptIn, strCableServiceReq, strAllService, strPhone, strLanguage, retAddr, msoffers, intTrackingID)
    51.  
    52.         Dim msot, msoi, msoa, saddress, msoItems, msoAddressSuggest, msooffers
    53.  
    54.         Try
    55.             msooffers = -1
    56.             msoItems = -1
    57.             msooffers = msoffers(0).Items.Length - 1
    58.             msoItems = msoffers(0).Items.Length - 1
    59.             Exit Try
    60.         Catch
    61.         End Try
    62.  
    63.         Try
    64.             msoAddressSuggest = -1
    65.             msoAddressSuggest = msoffers(0).AddressSuggestion.Length - 1
    66.             Exit Try
    67.         Catch
    68.         End Try
    69.  
    70.         If msoAddressSuggest = -1 And msoItems = -1 Then
    71.             Response.Write("Nothing to do.")
    72.         End If
    73.  
    74.         If msoAddressSuggest <> -1 Then
    75.             ReDim saddress(msoffers(msot).AddressSuggestion.Length)
    76.             For msoa = 0 To msoffers(msot).AddressSuggestion.Length
    77.                 saddress(msoa) = msoffers(msot).AddressSuggestion(msoa).AddressLine & " " & msoffers(msot).AddressSuggestion(msoa).Suite & " " & msoffers(msot).AddressSuggestion(msoa).City & ", " & msoffers(msot).AddressSuggestion(msoa).State & " " & msoffers(msot).AddressSuggestion(msoa).Zip & "-" & msoffers(msot).AddressSuggestion(msoa).Zip4
    78.                 Response.Write(saddress(msoa))
    79.             Next
    80.             Exit Sub
    81.         Else
    82.  
    83.         End If
    84.         'Response.Redirect("Today.html")
    85.         For msoi = 0 To msoffers(0).Items().Length - 1
    86.  
    87.             dot = CType(msooffers(0).items(msoi), WebReference.DataOfferType)
    88.             Response.Write(dot.DownloadSpeed)
    89.             Try
    90.                 Response.Write(msoffers(0).Items(msoi).MarketingInfo.Main & "<br>")
    91.             Catch
    92.             End Try
    93.             Response.Write(FormatCurrency(msoffers(0).Items(msoi).Price.Value, 2) & "<BR>")
    94.             Response.Write("<-----------------------------------------------><BR><BR>")
    95.         Next msoi
    96.  
    97.  
    98.     End Sub
    99.  
    100.     Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Button1.Click
    101.         Call sendQueryOffers()
    102.     End Sub
    103. End Class

  13. #13

    Thread Starter
    New Member
    Join Date
    May 2006
    Posts
    10

    Re: Need help translating - C# to VB.net

    ** BTW *** I feel like such an Idiot... Thanks again for your help...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width