Cast non valido del Tipo 'DBNull' al tipo String'

venerdì 23 novembre 2012 - 12.59

Carmelo1965 Profilo | Junior Member

Ciao a tutti, non capisco come mai quando clicco su una qualsiasi cella del datagrid mi segna il seguente errore :Cast non valido del Tipo 'DBNull' al tipo String'. Questo errore appare nel dgventer.
*********
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: questa riga di codice carica i dati nella tabella 'ContattiDataSet.Passati'. È possibile spostarla o rimuoverla se necessario.
Me.PassatiTableAdapter.Fill(Me.ContattiDataSet.Passati)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' TROVA.Text = dGV1.Rows(2).Cells(2).Value 'COPIA IN TXT IL CONTENUTO CHE VOGLIA DALLA CELLA
'come mettere in ordine alfabetico una colonna
dGV1.Sort(dGV1.Columns(3), System.ComponentModel.ListSortDirection.Ascending)
'se al posto dello 0 posso ordinare la colonna che voglio
End Sub
Private Sub dGV1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dGV1.CellContentClick
End Sub
Private Sub dGV1_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dGV1.CellEnter
'QUESTA ISTRUZIONE VINE ESEGUITA NEL DATAGRID QUANDO CLICCO SU UNA DETERMINATA CELLA
TROVA.Text = dGV1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value



End Sub
End Class

***************
Grazie mille.

Una giornata solare e buon lavoro :-)

DomA Profilo | Expert

Ciao,
presumo che lerrore sia qui:
>>TROVA.Text = dGV1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value

prova così:

If dGV1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value Is DBNull.Value Then TROVA.Text = "" else TROVA.Text = dGV1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString end if

___________________________________________________________________
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

Carmelo1965 Profilo | Junior Member

Grazie mille , se dovesse andare bene la seguente funzione ti ringrazierò di nuovo...
:-)

If dGV1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value Is DBNull.Value Then
TROVA.Text = ""
else
TROVA.Text = dGV1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString
end if

DomA Profilo | Expert

Se va bene ricordati di chiudere accettando la risposta
altrimenti non esistere a postare.

A presto

---------------------------------------------------------------------------------------------
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

Carmelo1965 Profilo | Junior Member

Assolutamente, per questo ho scrito ti ringrazio .. Buon Week
Una giornata solare e buon lavoro :-)

Carmelo1965 Profilo | Junior Member

Grazie numero Uno ha funzionato perfettamente, dimmi se ho capito il funzionamento, se il valore è nullo non fare nulla, altrimenti esegui il valore nella cella.. puoi dirmi se ho capito, altrimenti se puoi spiegarmelo mi fai un favore per usarlo in altri modo.
Grazie mille
Una giornata solare e buon lavoro :-)

DomA Profilo | Expert

Hai afferrato bene. Siccome i dati nella datagrid vengono caricati da db i campi vouti vengono caricati come DBNull e quindi non possono essere convertiti in string.

Buon Weekend anche a te.

--------------------------------------------------------

http://www.infomidia.it

Domenico

Carmelo1965 Profilo | Junior Member

ottimo grazie mille di nuovo... Salutone Carmelo
Una giornata solare e buon lavoro :-)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5