Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
VB net 2005 - DataGridview, DataTable e controllo valori su celle.
mercoledì 14 ottobre 2009 - 12.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
lorenzo.zonzin
Profilo
| Newbie
27
messaggi | Data Invio:
mer 14 ott 2009 - 12:13
Salve, ho un problema legato allo spostamento all'interno di una datagridview. Segue il codice.
'----------------------------------------------------------------
Dim dS As New DataSet()
Dim dttDati As New DataTable()
Dim dA As New OleDb.OleDbDataAdapter(sql, conn)
dA.Fill(dS, "tabella")
dttDati = dS.Tables("tabella")
If dttDati.Rows.Count <= 0 Then
dttDati.Clear()
dS.Clear()
End If
grd0.DataSource = dttDati
'--------------------------------------------------------
Questo è il codice che uso per popolare una tabella, uso un dataset e un datatable, grd0 è la mia datagridview.
Ipoteticamente sulla prima colonna ho un valore, un codice, io vorrei che passando alla cella successiva o alla cella sotto o a quella sopra, sulla seconda colonna apparisse la descrizione legata a quel codice.
Posto il codice sorgente legato all'evento cell_leave della mia griglia.
'-----------------------------------------------------------------
Private Sub grd0_CellLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grd0.CellLeave
Select Case grd0.CurrentCell.ColumnIndex
Case 0
Dim ssql As String
Dim dRead As OleDb.OleDbDataReader
If grd0.CurrentCell.RowIndex < grd0.RowCount - 1 Then
If grd0.Item(e.RowIndex, e.ColumnIndex).Value.ToString <> "" Then
ssql = "Select descr From tabella WHERE CODice = '" & UCase(grd0.Item(e.RowIndex, e.ColumnIndex).Value.ToString) & "';" '
Dim cmd As New OleDb.OleDbCommand(ssql, DbSoc)
dRead = cmd.ExecuteReader
If dRead.HasRows = True Then
dRead.Read()
grd0.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = dRead.Item("Descr")
Else
grd0.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = ""
End If
dRead.Close()
cmd = Nothing
End If
End If
End Select
End Sub
'------------------------------------------------------------------------------
Il fatto è che non visualizza nulla nella seconda colonna. E' un problema di datatable? Di dataset?
Poi se ci vogliamo pure mettere il fatto che a certe celle è associato anche l'evento doppio click che apre un'altra maschera di ricerca codici,
anche qui ho problemi legati al valore che viene passato alla cella della datagridview.
Vi ringrazio anticipatamente.
Ho risolto.
Ho aggiunto l'evento grd0.endedit() dopo le dichiarazioni nell'evento cell leave, così ho forzato lo stato della mia griglia e
il mio "grd0.Item(e.RowIndex, e.ColumnIndex).Value.ToString" risulta quello desiderato.
Ciao a tutti.
Torna su
Stanze Forum
Elenco Threads
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 !