Leggere Valore datagrid e assegnarlo ad una variabile

mercoledì 24 febbraio 2010 - 01.45

alsatan Profilo | Newbie

Ciao a tutti.

Premetto che sono un niubbone :P

Ho creato una DataGridView che prende dati da un DB. Una volta popolato ho bisogno di sapere il valore di una certa colonna, della riga selazionata dall'utente.

Go usato il seguente codice

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x As String

x = ClientiDataGridView.Item(1, ClientiDataGridView.CurrentCell.RowIndex).Value.ToString()

MsgBox("ho preso il.... " & x)

End Sub

Cosi funziona, ma mi spiegate perchè se invece utilizzo questa sintassi:

ID = ClientiDataGridView.Item(1, ClientiDataGridView.CurrentCell.RowIndex).Value.ToString()

dove "ID" è una variabile globale di tipo STRING, invece mi restituisce l'errore:

Impossibile convertire il valore di tipo 'String' in 'System.Windows.Forms.DataGridViewTextBoxColumn'.

????

Io ho bisogno di quel valore per poi lavorarci in altre Forms... il campo che l'utente seleziona contiene una colonna ID non visibile, io devo sapere il valore che assume ID nella riga selezionata dall'utente.

Grazie in anticipo

lanfra Profilo | Senior Member

La variabile dichiarazione della varibile è:

Public ID as string

Dovresti vedere poi se dove hai dichiarato la tua ID è visible ovunque nel tuo progetto


Lanfra

alsatan Profilo | Newbie

Mi era stato consigliato di creare una nuova classe o modulo per dichiarare le variabili globali.

Ho creato un nuovo modulo e l'ho dichiarata esattamente come dici tu, la variabile e' infatti accessibile e modificabile da qualsiasi form del progetto.

Quando pero' faccio l'assegnazione descritta nel primo post, in compilazione mi restituisce quell errore... Qualche altra idea?

lanfra Profilo | Senior Member

Una cosa del genere io l'ho fatta così

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

come vedi la tu ID è la mia ValoreCampo, forse è l'evento dove hai scritto il tuo codice che non piace al compilatore

L'unica differenza è che la mia ValoreCampo è locale alla Sub. Oppure metti la variabile Public in una form a cui definisci la classe Public e richiami sempre quella variabile nelle altre form con
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Certo la sintassi non è correttisma ma prova, puoi cambiare il nome alla variabile da ID a _ID...
Oppure guarda nel post "Passarrio valori tra form"

alsatan Profilo | Newbie

ahahahah ti ringrazio per l'aiuto, ma ora ti fai 2 risate anche tu!

Come perdersi in un bicchier d'acqua.... Andava in errore perche ID era anche il nome della prima colonna della DataGridView..... ''^^

mi ricordo quando scrivevo repone.write(......) in asp e perdevo ore a capire perche il (.....) desse errore quando mancava una S in reSponse.write hhihihihihihi

Grazie ancora per la pazienza :P

lanfra Profilo | Senior Member

nulla
Lanfra
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