Vb.net 2005 e Panel

giovedì 28 dicembre 2006 - 18.49

jekisi Profilo | Senior Member

Salve a tutto il forum, avrei il seguente problema:
In una form ho una datagridview, che mi elenca i dati SETE, NUMERO E DATA di determinati Documenti di trasporto.
Premendo un button invio questi dati in un' altra form, la quale contiene 3 Panel.
Un panel tiene 10 text per la SERIE, un altro 10 text per NUMERO, un altro 10 text per DATA, e invio i dati in questo modo:

Dim i As Integer = Form3.Panel1.Controls.Count - 1
For Each thisObject As System.Windows.Forms.DataGridViewRow In Me.TDDTDataGridView1.Rows
Form3.Panel1.Controls(i).Text = thisObject.Cells(0).Value

Form3.Panel2.Controls(i).Text = thisObject.Cells(1).Value
Form3.Panel3.Controls(i).Text = thisObject.Cells(2).Value

i = i - 1

Next thisObject


ma il problema sta nel fatto che SERIE può avere anche un valore Null.
Quando passo una riga che come SERIE non ha alcun valore, mi da il seguente errore:

Conversion from type 'DBNull' to type 'String' is not valid.


evidenziandomi la seguente riga:

Form3.Panel1.Controls(i).Text = thisObject.Cells(0).Value

Come dovrei fare a fargli accettare anche le righe che come SERIE hanno un valore NULL?



Distinti Saluti Fabio Messina

wacker976 Profilo | Newbie

Prova ad usare Convert.ToString(thisObject.Cells(0).Value).
Dovrebbe trasformare il dato Null in una stringa vuota

jekisi Profilo | Senior Member

Dim i As Integer = Form3.Panel1.Controls.Count - 1
For Each thisObject As System.Windows.Forms.DataGridViewRow In Me.TDDTDataGridView1.Rows
Convert.ToString(thisObject.Cells(0).Value)
Form3.Panel1.Controls(i).Text = thisObject.Cells(0).Value

Form3.Panel2.Controls(i).Text = thisObject.Cells(1).Value
Form3.Panel3.Controls(i).Text = thisObject.Cells(2).Value

i = i - 1

Next thisObject


così non va

wacker976 Profilo | Newbie

No, intendevo:

Dim Stringa as string = Convert.ToString(thisObject.Cells(0).Value)
Form3.Panel1.Controls(i).Text = Stringa


in pratica se il dato era null, diventa "", e lo scrivi nella textbox

jekisi Profilo | Senior Member

Grazie mille, funziona

Dim i As Integer = Form3.Panel1.Controls.Count - 1

For Each thisObject As System.Windows.Forms.DataGridViewRow In Me.TDDTDataGridView1.Rows
Dim Stringa As String = Convert.ToString(thisObject.Cells(0).Value)
Form3.Panel1.Controls(i).Text = Stringa
'Form3.Panel1.Controls(i).Text = thisObject.Cells(0).Value

Form3.Panel2.Controls(i).Text = thisObject.Cells(1).Value
Form3.Panel3.Controls(i).Text = thisObject.Cells(2).Value

i = i - 1

Next thisObject


con l' occasione faccio tanti auguri di Buon Anno


Distinti Saluti Fabio Messina
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5