Strano Errore in gestione DataGrid

martedì 30 ottobre 2012 - 18.39
Tag Elenco Tags  C#  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Visual Studio 2010  |  SQL Server Express  |  Access (.mdb)

fardox Profilo | Newbie

Buonasera, vi sottopongo ad un errore alquanto strano: gestisco la creazione di un datagridview in maniera testuale, "bypassando" in un certo senso l'interfaccia di gestione di c# del componente stesso.
Il problema è che una volta creata una nuova colonna nel database, e inserita la relativa visualizzazione sul datagridview, mi viene fornito questo strano errore, che non so proprio come gestire...sapete darmi un consiglio?

Ecco uno screenshot dell'errore in questione: http://s11.postimage.org/8ni8hdqup/Immagine.jpg

Grazie.


marco_grillo Profilo | Junior Member

Questo errore è dato dal fatto che il numero di colonna che hai messo (6) è superiore al massimo delle colonne.
La colonna 6, che in realtà è la settima perché si parte da 0, è per caso quella che vuoi aggiungere? E' normale che salti la colonna 2 ??


_________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera apllicazione

fardox Profilo | Newbie

Il problema si presenta quando provo a visualizzare il datagrid in questione, in poche parole, credo che ci sia un problema nel dataAdapter.Fill o giù di li...
perchè quando provo a visualizzare il datagrid l'errore mi viene segnalato proprio in questo punto.


Ecco il frammento completo del codice:

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

Vinsent Profilo | Senior Member

L' errore è lampante...come ti ha risposto marco_grillo.
Forse non ti è chiara la differenza tra "numero" e "indice".
Un datagrid che ha 6 colonne, se le conti il loro numero è 6 (1,2,3,4,5,6) mentre il loro indice, che le identifica, parte da 0 quindi la prima ha indice 0, la seconda ha indice 1, ecc...l' indice è uguale al "numero" meno 1 quindi va da 0 a 5, è un concetto molto basilare in .NET.........
In definitiva:
colonna 1 = indice 0
colonna 2 = indice 1
colonna 3 = indice 2
eccetera
Quando richiami le colonne via codice le identifichi tramite l' indice, quindi diventa:
dataGridView1.Columns[0].Width = 70; ataGridView1.Columns[1].Width = 70; dataGridView1.Columns[2].Width = 100; dataGridView1.Columns[3].Width = 150; dataGridView1.Columns[4].Width = 100; dataGridView1.Columns[5].Width = 100;
Se scrivi Columns[6] richiami una settima colonna....
Capito?

fardox Profilo | Newbie

Si, mi è chiaro...e per questo vi ringrazio!
Ma una volta aperto e caricato il datagrid, mi visualizza sempre le stesse colonne, senza visualizzarmi la colonna desiderata...ma una volta premuto il tasto aggiorna datagrid magicamente compare la colonna desiderata!!!

AIUTO!!!
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