2015-10-19 94 views
0

我有以下vb.net功能:参数类型“串”不分配枚举参考参数类型“诠释”

Public Function GetTicketDocument(ByVal vTicketNumber As Int32, ByVal vDocumentType As TicketDocumentType) As String 

    Dim objO_Int As New dtIntegration_v10_r1.OmniqueManager(mobjSecurity) 
    Dim strTicketFormat As String = "" 
    Dim strEFILE_GUID As String = "" 

    Select Case vDocumentType 

     Case TicketDocumentType.tdtEstimate 
      strTicketFormat = "Estimate" 
     Case TicketDocumentType.tdtRepairOrder 
      strTicketFormat = "RepairOrder" 
     Case TicketDocumentType.tdtInvoice 
      strTicketFormat = "Invoice" 
    End Select 
    strEFILE_GUID = objO_Int.GetTicketDocument(vTicketNumber, strTicketFormat) 

    Return strEFILE_GUID 

End Function 

,当我运行与此函数I相关的aspx页面出现以下错误

参数类型“串”不分配给参数类型“诠释”

,这是该行代码,它引用

mEFile_GUID = objMain.GetTicketDocument(txtTicketNumber.Text, mTicketStage_ID); 

人会想到所有你需要做的就是这样的事情

mEFile_GUID = objMain.GetTicketDocument(Convert.ToInt32(txtTicketNumber.Text), mTicketStage_ID); 

然而,当我这样做,我得到这个错误,我不知道如何解决

参数类型'int'不可分配给参数类型'dtlService_v10_r1.Manager.TicketDocumentType'

有没有人遇到过这个?如果需要,我可以发布dll'dtlService_v10_r1',但它非常冗长只是让你知道

哦,可能还有一些重要的信息是,这是一个从vb.net到c#的转换过程,我们保持函数在vb.net。我不知道这是否是需要的信息,但我喜欢尽可能多地提供信息

+0

估计是mTicketStage_ID参数,你需要通过枚举值像TicketDocumentType.tdtEstimate – V4Vendetta

+0

你有两个问题(1个错误信息,并不意味着1层的问题,但你必须先解决1个问题,然后见),并且你修正了第一个(恭喜)。现在,您必须通过将枚举作为枚举来处理第二个。 – varocarbas

回答

2

这是您当前问题的第二个参数。您需要将其转换为正确的枚举类型。

Dim vTicketNumber = Convert.ToInt32(txtTicketNumber.Text) 
Dim vDocumentType = DirectCast(mTicketStage_ID, TicketDocumentType) 
mEFile_GUID = objMain.GetTicketDocument(vTicketNumber, vDocumentType) 
+0

谢谢Magnus,那就是解决方案。我不熟悉VB,以便可以解释它:-) – MaximusPrime

相关问题