41 messaggi dal 04 settembre 2005
ciao ragazzi mi sa che a forza di domande mi odierete....

vabbè questa volta ho un problema di dbnull. insomma ho recuperato dei dati da un database li ho messi in dei textbox ma quando il valore di uno di questi campi è nullo mi restituisce un errore non continuando a riempire i campi dopo.... per maggior chiarezza vi posto anche il code..

Function visual(ByVal rag As String)
        
        
        Dim cmd1 As New SqlCommand("SELECT * FROM [gestionale].[dbo].[main] WHERE [rag_soc] = '" & rag & "'", con)
               
        'dichiaro un lettore
        Dim reader As SqlDataReader
        
        Try
            'mi connetto al db
            con.Open()
        
            'eseguo la lettura
            reader = cmd1.ExecuteReader
        
            'metto nei campi giusti le letture
            reader.Read()
            
            tbrag.Text = Trim(reader("rag_soc"))
            
            tbiva.Text = Trim(reader("piva"))
            
            tbcf.Text = Trim(reader("CF"))
          
            tbuser.Text = Trim(reader("webuser"))
            
            tbpass.Text = Trim(reader("webpass"))
           
            'chiudo la lettura
            reader.Close()
            
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "errore")
        End Try
    End Function


grazie mille
Modificato da The cekker il 02 marzo 2006 10.52 -
26 messaggi dal 20 luglio 2005
Prima di utilizzare un campo che potrebbe essere null (vedi le impostazioni sul db) verifica che non sia nullo....io verificherei che anche se la query mi ritorna qualcosa

if reader.Read() then

if reader("rag_soc") is DbNull.Value then
tbrag.Text = ""
else
tbrag.Text = Trim(reader("rag_soc"))
end if

if reader("rag_soc") is DbNull.Value then
tbiva.Text = ""
else
tbiva.Text = Trim(reader("piva"))
end if

if reader("rag_soc") is DbNull.Value then
tbcf.Text = ""
else
tbcf.Text = Trim(reader("CF"))
end if

if reader("rag_soc") is DbNull.Value then
tbuser.Text = ""
else
tbuser.Text = Trim(reader("webuser"))
end if

if reader("rag_soc") is DbNull.Value then
tbpass.Text = ""
else
tbpass.Text = Trim(reader("webpass"))
end if

end if
'chiudo la lettura
reader.Close()
ma quando il valore di uno di
questi campi è nullo mi restituisce un errore non continuando a riempire i campi dopo.... per maggior chiarezza vi posto anche il code..

Beh mi sembra giusto, devi fare un controllo se il valore che recuperi dal datareader è nullo
in c# io farei così

mioTextobox.Text = !dr.IsDBNull(1) ? dr.GetString(1) : string.Empty;
In Vb.net mi sembra che l'operatore ternario non esista quindi una condizione if sul IsDBNull dovrebbe andare

If Not dr.IsDBNull(1) Then
mioTextobox.Text = dr.GetString(1)
Else
mioTextobox.Text = String.Empty
End If

Se non ti crea problemi usa il numero per richiamare il tuo campo, è più performante, almeno mi sembra di aver sentito così

Dovrebbe andare. byez


imperugo
myblog : http://blogs.aspitalia.com/imperugo/
myblog : http://imperugo.blogspot.com

imperugo
Microsoft MVP
myblog : http://www.tostring.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.