Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [VB.NET] - Classe item data personalizzato e valori Null

    Ciao ragazzi!
    Ho creato questa classe che mi popola una listbox tenendo in memoria tutti i dati di ogni voce:

    codice:
    Public Class itemDataAssociati
        Private m_visualizzazione As String
        Public m_id As Integer
        Public m_nome As String
        Public m_cognome As String
        Public m_fisso As String
        Public m_tim As String
        Public m_vodafone As String
        Public m_wind As String
        Public m_h3g As String
        Public m_mail As String
        Public m_ruolo As String
        Public Sub New(ByVal visualizzazione As String, ByVal id As Integer, ByVal nome As String, ByVal cognome As String, ByVal fisso As String, ByVal tim As String, ByVal vodafone As String, ByVal wind As String, ByVal h3g As String, ByVal mail As String, ByVal ruolo As String)
            m_visualizzazione = visualizzazione
            m_id = id
            m_nome = nome
            m_cognome = cognome
            m_fisso = fisso
            m_tim = tim
            m_vodafone = vodafone
            m_wind = wind
            m_h3g = h3g
            m_mail = mail
            m_ruolo = ruolo
        End Sub
    
        Public Overrides Function ToString() As String
            Return m_visualizzazione
        End Function
        Public ReadOnly Property nomeAssociato() As Integer
            Get
                Return m_nome
            End Get
        End Property
        Public ReadOnly Property cognomeAssociato() As Integer
            Get
                Return m_cognome
            End Get
        End Property
        Public ReadOnly Property fissoAssociato() As Integer
            Get
                Return m_fisso
            End Get
        End Property
        Public ReadOnly Property timAssociato() As Integer
            Get
                Return m_tim
            End Get
        End Property
        Public ReadOnly Property vodafoneAssociato() As Integer
            Get
                Return m_vodafone
            End Get
        End Property
        Public ReadOnly Property windAssociato() As Integer
            Get
                Return m_wind
            End Get
        End Property
        Public ReadOnly Property h3gAssociato() As Integer
            Get
                Return m_h3g
            End Get
        End Property
        Public ReadOnly Property mailAssociato() As Integer
            Get
                Return m_mail
            End Get
        End Property
        Public ReadOnly Property ruoloAssociato() As Integer
            Get
                Return m_ruolo
            End Get
        End Property
    End Class
    Presumo funzioni perchè classi analoghe le ho già usate altre volte. Il problema è che spesso i campi che son utilizzati su sono Null nel mio db e questo fatto nn mi viene gestito con conseguente errore.

    Come posso ovviare alla cosa?

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    ho risolto mettendo come valore predefinito "" (ovvero una stringa vuota ma nn null) nel db access! :P

    CIaoo grazie lo stesso

  3. #3
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    non è corretto gestire il null come ""(stringa vuota). Sono due cose completamente diverse.
    Penso che usi il dataset per recuperare i dati dal db. Se è cosi' allora conviene utilizzare
    il metodo IsNull(...). Vedi qui ->
    http://msdn.microsoft.com/it-it/libr...ow.isnull.aspx
    I got the remedy

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    no non uso il dataset...! Uso una connessione ADO via codice!

  5. #5
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ok, però io voglio dire che non è corretto salvare sul db null e "", e trattarli come fosse la stessa cosa.
    Cioè, se per te un valore null sul db è la stessa cosa di un "", allora è sbagliato semplicemente perchè ti crea dei casini che ti fanno perdere molto tempo...
    I got the remedy

  6. #6
    puoi sempre fare un controllo sui dati che inserisci con la funzione isDBNull

    oppure inserire i valori chiudendoli in un try...catch
    codice:
    Try
        tim = ...
    Catch ex As System.ArgumentNullException
        tim = nothing
    End Try

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Altro:

    codice:
    Public Class itemDataAssociati
        Private m_visualizzazione As String
        Public m_id As Integer
        Public m_nome As String
        Public m_cognome As String
        Public m_fisso As String
        Public m_tim As String
        Public m_vodafone As String
        Public m_wind As String
        Public m_h3g As String
        Public m_mail As String
        Public m_ruolo As String
        Public Sub New(ByVal visualizzazione As String, ByVal id As Integer, ByVal nome As String, ByVal cognome As String, ByVal fisso As String, ByVal tim As String, ByVal vodafone As String, ByVal wind As String, ByVal h3g As String, ByVal mail As String, ByVal ruolo As String)
            m_visualizzazione = visualizzazione
            m_id = id
            m_nome = nome
            m_cognome = cognome
            m_fisso = fisso
            m_tim = tim
            m_vodafone = vodafone
            m_wind = wind
            m_h3g = h3g
            m_mail = mail
            m_ruolo = ruolo
        End Sub
    Se leggi tutte quelle varabili dalle proprietà della classe conviene convertirle in Private, poi le proprietà sono del tipo String non Integer, quindi in definitiva la classe diventa:

    codice:
    Public Class itemDataAssociati
        Private m_visualizzazione As String
        Private m_id As Integer
        Private m_nome As String
        Private m_cognome As String
        Private m_fisso As String
        Private m_tim As String
        Private m_vodafone As String
        Private m_wind As String
        Private m_h3g As String
        Private m_mail As String
        Private m_ruolo As String
    
        Public Sub New(ByVal visualizzazione As String, ByVal id As Integer, ByVal nome As String, ByVal cognome As String, ByVal fisso As String, ByVal tim As String, ByVal vodafone As String, ByVal wind As String, ByVal h3g As String, ByVal mail As String, ByVal ruolo As String)
            m_visualizzazione = visualizzazione
            Me.m_id = id
            Me.m_nome = nome
            Me.m_cognome = cognome
            Me.m_fisso = fisso
            Me.m_tim = tim
            Me.m_vodafone = vodafone
            Me.m_wind = wind
            Me.m_h3g = h3g
            Me.m_mail = mail
            Me.m_ruolo = ruolo
        End Sub
    
        Public Overrides Function ToString() As String
            Return m_visualizzazione
        End Function
        Public ReadOnly Property nomeAssociato() As String
            Get
                Return m_nome
            End Get
        End Property
        Public ReadOnly Property cognomeAssociato() As String
            Get
                Return m_cognome
            End Get
        End Property
        Public ReadOnly Property fissoAssociato() As String
            Get
                Return m_fisso
            End Get
        End Property
        Public ReadOnly Property timAssociato() As String
            Get
                Return m_tim
            End Get
        End Property
        Public ReadOnly Property vodafoneAssociato() As String
            Get
                Return m_vodafone
            End Get
        End Property
        Public ReadOnly Property windAssociato() As String
            Get
                Return m_wind
            End Get
        End Property
        Public ReadOnly Property h3gAssociato() As String
            Get
                Return m_h3g
            End Get
        End Property
        Public ReadOnly Property mailAssociato() As String
            Get
                Return m_mail
            End Get
        End Property
        Public ReadOnly Property ruoloAssociato() As String
            Get
                Return m_ruolo
            End Get
        End Property
    End Class
    Sbagliare è umano, perseverare è diabolico.

  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Scusa pirelli....non vorrei sembrar scema....ma il codice che hai scritto non è identico a quello che ho scritto io?

    Le variabili mi servon pubbliche perchè la classe viene richiamata spesso e in piu punti dell'applicazione che sto sviluppando. Infatti è messa in un Modulo.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Veronica80
    Scusa pirelli....non vorrei sembrar scema....ma il codice che hai scritto non è identico a quello che ho scritto io?
    Non mi pare ... piuttosto, mi sembra che te l'abbia corretto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Non è uguale diciamo equivalente, e le proprità sono di tipo String non Integer.
    Mi sfugge per quale motivo dici 'mi servono pubbliche'!!! visto che le stesse sono delle proprietà della classe.
    Sbagliare è umano, perseverare è diabolico.

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.