Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    86

    [VB.NET 2008] Conversione di un decimal a nullable o int32

    Ciao a tutti,

    nella mia applicazione durante l'esecuzione mi compaiono questi errore:

    "Un oggetto di tipo "System.Decimal" non può essere convertito nel tipo "System.Int32".
    "Un oggetto di tipo "System.Decimal" non può essere convertito nel tipo "System.Nullable".


    Siccome usando dei dati di tipo Generics non so fare la conversione.

    Un aiuto?

  2. #2
    Puoi postare il codice? E' un po' vago così.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    86
    Questa è la parte di codice che mi segnala l'errore:

    nella riga '---->>>> è dove andrebbe fatta la conversione.

    Public Class mapper(Of OutType)
    Public Function mappa(ByVal list As IList) As List(Of OutType)
    Dim pInfosFrom(), pInfo As System.Reflection.PropertyInfo
    Dim i, j As Integer
    Dim objClass, objVal As Object
    Dim retList As New List(Of OutType)
    Dim tipo As Type = GetType(OutType)

    For i = 0 To list.Count - 1
    pInfosFrom = list(i).GetType.GetProperties()
    objClass = tipo.Assembly.CreateInstance(tipo.FullName)
    For j = 0 To pInfosFrom.Length - 1
    pInfo = tipo.GetProperty(pInfosFrom(j).Name)
    If Not pInfo Is Nothing Then
    objVal = pInfosFrom(j).GetValue(list(i), Nothing)
    If pInfo.PropertyType Is GetType(Nullable) Then
    '--->>>>>
    Else
    pInfo.SetValue(objClass, objVal, Nothing)
    End If
    End If
    Next
    retList.Add(CType(objClass, OutType))
    Next
    Return retList
    End Function
    End Class

  4. #4
    Però non hai scritto il pezzo di codice che dà errore XD Se vuoi convertire il Nullable in un valore corrispettivo di OutType, perchè non provi a controllare se il tipo è GetType(Nullable(Of OutType)) ? Così sei sicuro di non avere errori...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    86
    Ti posto tutta la classe (sempre nel punto dell' if mi passa all'eccezione segnalandomi l'errore di mancata conversione).

    Confido in te perchè sono veramente nel buio più totale!!!

    Public Class Classe_Ana_Fornitori
    Public Function FindFornitori(ByVal codice_forn As Integer, ByVal rag_sociale As String) As List(Of FoundDatiForn)
    Dim findforn As New List(Of FoundDatiForn)
    Using connection As New OnAuditEntities
    Dim query = From Forn In connection.T_ANA_FORNITORI _
    Where Forn.FORN_CODICE = codice_forn Or Forn.FORN_RAG_SOCIALE = rag_sociale _
    Select Codice = Forn.FORN_CODICE, Ragione_sociale = Forn.FORN_RAG_SOCIALE, Indirizzo = Forn.FORN_INDIRIZZO, _
    Stato = Forn.FORN_STATO()

    Dim lista = query.ToList()
    Dim m As New mapper(Of FoundDatiForn)
    findforn = m.mappa(lista)

    Return findforn
    End Using
    End Function

    Public Class mapper(Of OutType)
    Public Function mappa(ByVal list As IList) As List(Of OutType)
    Dim pInfosFrom(), pInfo As System.Reflection.PropertyInfo
    Dim i, j As Integer
    Dim objClass, objVal As Object
    Dim retList As New List(Of OutType)
    Dim tipo As Type = GetType(OutType)

    For i = 0 To list.Count - 1
    pInfosFrom = list(i).GetType.GetProperties()
    objClass = tipo.Assembly.CreateInstance(tipo.FullName)
    For j = 0 To pInfosFrom.Length - 1
    pInfo = tipo.GetProperty(pInfosFrom(j).Name)
    If Not pInfo Is Nothing Then
    objVal = pInfosFrom(j).GetValue(list(i), Nothing)
    If pInfo.PropertyType Is GetType(Nullable) Then

    Else
    pInfo.SetValue(objClass, objVal, Nothing)
    End If
    End If
    Next
    retList.Add(CType(objClass, OutType))
    Next
    Return retList
    End Function
    End Class

    Public Class FoundDatiForn
    Private _Codice As Nullable(Of Integer)
    Public Property Codice() As Nullable(Of Integer)
    Get
    Return _Codice
    End Get
    Set(ByVal value As Nullable(Of Integer))
    _Codice = value
    End Set
    End Property
    Private _Ragione_Sociale As String
    Public Property Rag_Sociale() As String
    Get
    Return _Ragione_Sociale
    End Get
    Set(ByVal value As String)
    _Ragione_Sociale = value
    End Set
    End Property
    Private _Indirizzo As String
    Public Property Indirizzo() As String
    Get
    Return _Indirizzo
    End Get
    Set(ByVal value As String)
    _Indirizzo = value
    End Set
    End Property
    Private _Stato As String
    Public Property Stato() As String
    Get
    Return _Stato
    End Get
    Set(ByVal value As String)
    _Stato = value
    End Set
    End Property
    End Class
    End Class

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.