Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET] campo Db vuoto, null...???

    Ho un campo in un Db che leggo con:
    m_reader.GetString(0).ToString()
    Nel caso però che il campo sia vuoto e faccio un confronto del tipo:
    if m_reader.GetString(0).ToString() <> "" then
    mi da errore di cast, evidentemente perché voglio fare un confronto(<>) tra la stringa vuota("") e m_reader.getType che non sarà una stringa. Ho provato anche un confronto con DbNull ma niente, qualcuno sa darmi qualche consiglio?
    ciao

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Usa il metodo IsDBNull dell'oggetto XXXDataReader passando come parametro l'indice della colonna; se non vuoi rendere "hard coded" l'indice stesso, acquisiscilo tramite il metodo GetOrdinal il quale accetta il nome della colonna.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ho fatto così:
    codice:
     While m_reader.Read
      If m_reader(0).IsDBNull = False Then
    
       If m_reader.GetString(0).ToString() <> "" Then
               ImmettiPassword = True
       End If
      End If
    
     End While
    ma mi dice che non trova il membro pubblico IsDBNull. Era così che dovevo utilizzare IsDBNull oppure ho sbagliato qualcosa?
    Grazie e ciao

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da mardok30
    Ho fatto così:
    ma mi dice che non trova il membro pubblico IsDBNull. Era così che dovevo utilizzare IsDBNull oppure ho sbagliato qualcosa?
    Si utilizza così:
    codice:
      If MyDataReader.IsDBNull(indice) Then
      ...
    Quando incontri questo tipo di difficoltà (dubbi su metodi, proprietà ed eventi delle classi), consulta la Microsoft .NET SDK Documentation senza andare "a tentoni": potresti tralasciare informazioni importanti e perdere un sacco di tempo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Ok, grazie mille!
    La sintassi corretta è:
    codice:
    If m_reader.IsDBNull(0) = False Then
    e non:
    codice:
    m_reader(0).IsDBNull = False
    Ho notato che solo se modifico il Db a mano cancellando il contenuto del record mi modifica il record in DbNull e non ""
    Ciao

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.