|
-
May 1st, 2006, 11:48 AM
#1
Thread Starter
New Member
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:
Dim Offers() As WebReference.DataOfferType
Dim dot As WebReference.DataOfferType
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?
-
May 1st, 2006, 11:55 AM
#2
Frenzied Member
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().
-
May 1st, 2006, 12:04 PM
#3
Re: Need help translating - C# to VB.net
VB Code:
Dim dot As WebReference.DataOfferType = WebReference.DataOfferType.Offers(0)
-
May 1st, 2006, 12:08 PM
#4
Thread Starter
New Member
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:
Partial Class _Default
Inherits System.Web.UI.Page
Sub sendQueryOffers()
Dim strAddr As New WebReference.UnparsedUSAddressType
Dim CableServiceEnum As New WebReference.CableServiceEnum
Dim AllServiceEnum As New WebReference.AllServiceEnum
Dim strAffType As New WebReference.AffiliateType
Dim origAffType As New WebReference.AffiliateType
Dim Privacy As New WebReference.PrivacyNoticeEnum
Dim retAddr As WebReference.ParsedUSAddressType = Nothing
Dim intTrackingID As Integer
Dim strCableServiceReq() As WebReference.CableServiceEnum = New WebReference.CableServiceEnum(0) {}
Dim strAllService() As WebReference.AllServiceEnum = New WebReference.AllServiceEnum(0) {}
Dim strPhone As String = "0000000000"
Dim strLanguage As String = "en-us"
Dim refWeb As New WebReference.QueryOffersService
Dim msoffers() As WebReference.MSOOffersResponseType
Dim Offers() As New WebReference.DataOfferType
'Dim offer As OffersResponse = OffersResponse.DownloadSpeed
'Dim myType As Type = Type.GetType(MyControlInstance)
'Define Passed Variables
strCableServiceReq(0) = CableServiceEnum.CableHighSpeedData
'Subscriber service
strAllService(0) = AllServiceEnum.CableHighSpeedData
'Originating Affiliate
origAffType.AffiliateID = Nothing
origAffType.SalesPersonID = Nothing
'Affiliate details
strAffType.AffiliateID = Convert.ToInt32("122100")
strAffType.SalesPersonID = "0"
strAffType.StoreID = "0"
strAffType.G2BVersion = Convert.ToDecimal(4.0)
'Address details
strAddr.AddressLine = address.Text
strAddr.City = ""
strAddr.State = ""
strAddr.Zip = zip.Text
'Load query and send
refWeb.Url = "https://www.xxxxxxxxxx.com/QueryOffers/QueryOffers.asmx"
Dim Resp
Resp = refWeb.QueryOffers(strAffType, Nothing, strAddr, WebReference.PrivacyNoticeEnum.OptIn, strCableServiceReq, strAllService, strPhone, strLanguage, retAddr, msoffers, intTrackingID)
Dim msot, msoi, msoa, saddress, msoItems, msoAddressSuggest, msooffers
Try
msooffers = -1
msoItems = -1
msooffers = msoffers(0).Items.Length - 1
msoItems = msoffers(0).Items.Length - 1
Exit Try
Catch
End Try
Try
msoAddressSuggest = -1
msoAddressSuggest = msoffers(0).AddressSuggestion.Length - 1
Exit Try
Catch
End Try
If msoAddressSuggest = -1 And msoItems = -1 Then
Response.Write("Nothing to do.")
End If
If msoAddressSuggest <> -1 Then
ReDim saddress(msoffers(msot).AddressSuggestion.Length)
For msoa = 0 To msoffers(msot).AddressSuggestion.Length
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
Response.Write(saddress(msoa))
Next
Exit Sub
Else
End If
'Response.Redirect("Today.html")
For msoi = 0 To msoffers(0).Items().Length - 1
Dim dot As WebReference.DataOfferType
dot = CType(Offers(0), WebReference.DataOfferType)
'Dim OffersR As WebReference.DataOfferType = DirectCast(OffersR, WebReference.DataOfferType)
Response.Write(dot.DownloadSpeed)
Try
Response.Write(msoffers(0).Items(msoi).MarketingInfo.Main & "<br>")
Catch
End Try
Response.Write(FormatCurrency(msoffers(0).Items(msoi).Price.Value, 2) & "<BR>")
Response.Write("<-----------------------------------------------><BR><BR>")
Next msoi
End Sub
Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Button1.Click
Call sendQueryOffers()
End Sub
End Class
-
May 1st, 2006, 12:12 PM
#5
Re: Need help translating - C# to VB.net
Does this give you a compiler error?
VB Code:
For each dot As WebReference.DataOfferType in offers
Response.Write(dot.DownloadSpeed)
Next
-
May 1st, 2006, 12:15 PM
#6
Re: Need help translating - C# to VB.net
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 Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API 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 
-
May 1st, 2006, 12:17 PM
#7
Thread Starter
New Member
Re: Need help translating - C# to VB.net
 Originally Posted by RobDog888
Yes, I have used it, but it did not help in this situation.
-
May 1st, 2006, 12:19 PM
#8
Thread Starter
New Member
Re: Need help translating - C# to VB.net
 Originally Posted by wild_bill
Does this give you a compiler error?
VB Code:
For each dot As WebReference.DataOfferType in offers
Response.Write(dot.DownloadSpeed)
Next
'dot' Yes, Hides a variable in an enclosing block.
-
May 1st, 2006, 12:22 PM
#9
Re: Need help translating - C# to VB.net
replace this code:
VB Code:
Dim dot As WebReference.DataOfferType
dot = CType(Offers(0), WebReference.DataOfferType)
'Dim OffersR As WebReference.DataOfferType = DirectCast(OffersR, WebReference.DataOfferType)
Response.Write(dot.DownloadSpeed)
with my code and try to compile.
-
May 1st, 2006, 12:25 PM
#10
Thread Starter
New Member
Re: Need help translating - C# to VB.net
 Originally Posted by wild_bill
replace this code:
VB Code:
Dim dot As WebReference.DataOfferType
dot = CType(Offers(0), WebReference.DataOfferType)
'Dim OffersR As WebReference.DataOfferType = DirectCast(OffersR, WebReference.DataOfferType)
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.
-
May 1st, 2006, 12:26 PM
#11
Thread Starter
New Member
Re: Need help translating - C# to VB.net
 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.
-
May 1st, 2006, 12:29 PM
#12
Thread Starter
New Member
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:
Partial Class _Default
Inherits System.Web.UI.Page
Sub sendQueryOffers()
Dim strAddr As New WebReference.UnparsedUSAddressType
Dim CableServiceEnum As New WebReference.CableServiceEnum
Dim AllServiceEnum As New WebReference.AllServiceEnum
Dim strAffType As New WebReference.AffiliateType
Dim origAffType As New WebReference.AffiliateType
Dim Privacy As New WebReference.PrivacyNoticeEnum
Dim retAddr As WebReference.ParsedUSAddressType = Nothing
Dim intTrackingID As Integer
Dim strCableServiceReq() As WebReference.CableServiceEnum = New WebReference.CableServiceEnum(0) {}
Dim strAllService() As WebReference.AllServiceEnum = New WebReference.AllServiceEnum(0) {}
Dim strPhone As String = "0000000000"
Dim strLanguage As String = "en-us"
Dim refWeb As New WebReference.QueryOffersService
Dim msoffers() As WebReference.MSOOffersResponseType
'Dim Offers() As WebReference.DataOfferType
'Dim offer As OffersResponse = OffersResponse.DownloadSpeed
Dim dot As WebReference.DataOfferType
'Dim myType As Type = Type.GetType(MyControlInstance)
'Define Passed Variables
strCableServiceReq(0) = CableServiceEnum.CableHighSpeedData
'Subscriber service
strAllService(0) = AllServiceEnum.CableHighSpeedData
'Originating Affiliate
origAffType.AffiliateID = Nothing
origAffType.SalesPersonID = Nothing
'Affiliate details
strAffType.AffiliateID = Convert.ToInt32("122100")
strAffType.SalesPersonID = "0"
strAffType.StoreID = "0"
strAffType.G2BVersion = Convert.ToDecimal(4.0)
'Address details
strAddr.AddressLine = address.Text
strAddr.City = ""
strAddr.State = ""
strAddr.Zip = zip.Text
'Load query and send
refWeb.Url = "https://www.xxxxxxxxxxxxx.com/QueryOffers/QueryOffers.asmx"
Dim Resp
Resp = refWeb.QueryOffers(strAffType, Nothing, strAddr, WebReference.PrivacyNoticeEnum.OptIn, strCableServiceReq, strAllService, strPhone, strLanguage, retAddr, msoffers, intTrackingID)
Dim msot, msoi, msoa, saddress, msoItems, msoAddressSuggest, msooffers
Try
msooffers = -1
msoItems = -1
msooffers = msoffers(0).Items.Length - 1
msoItems = msoffers(0).Items.Length - 1
Exit Try
Catch
End Try
Try
msoAddressSuggest = -1
msoAddressSuggest = msoffers(0).AddressSuggestion.Length - 1
Exit Try
Catch
End Try
If msoAddressSuggest = -1 And msoItems = -1 Then
Response.Write("Nothing to do.")
End If
If msoAddressSuggest <> -1 Then
ReDim saddress(msoffers(msot).AddressSuggestion.Length)
For msoa = 0 To msoffers(msot).AddressSuggestion.Length
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
Response.Write(saddress(msoa))
Next
Exit Sub
Else
End If
'Response.Redirect("Today.html")
For msoi = 0 To msoffers(0).Items().Length - 1
dot = CType(msooffers(0).items(msoi), WebReference.DataOfferType)
Response.Write(dot.DownloadSpeed)
Try
Response.Write(msoffers(0).Items(msoi).MarketingInfo.Main & "<br>")
Catch
End Try
Response.Write(FormatCurrency(msoffers(0).Items(msoi).Price.Value, 2) & "<BR>")
Response.Write("<-----------------------------------------------><BR><BR>")
Next msoi
End Sub
Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Button1.Click
Call sendQueryOffers()
End Sub
End Class
-
May 1st, 2006, 12:31 PM
#13
Thread Starter
New Member
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|