Ok un campione più esteso:
ho fatto nella finestra di progettazione alcune colonne:
nomi delle colonne: customerID and customerFirstName
colonna HeaderText: Ident. and First name
tanto sono alcuni dati da tabella SQL ...
sql = "select customerID, customerFirstName From customer;";
dataGridView.AutoGenerateColumns = false;
dataGridView.DataSource = dataSet.Tables[0].DefaultView;
e le colonne della tabella sql sono uguali ai nomi delle colonne in dataGridView.
Il risultato che ottengo quando dataGridView.AutoGenerateColumns = false;
è un dataGridView a due colonne con header Ident. | First name
.
Quando si imposta dataGridView.AutoGenerateColumns = true;
, quindi ottengo colonne DataGridView come questa: Ident. | First name | customerID | customerFirstName
.
tutte le righe sotto Ident
e First name
sono empty
e tutti gli altri sotto customerID
e customerFirstName
sono ok
.
Ora voglio che le righe qui sotto customerID
e customerFirstName
sarebbero sotto Ident
e First name
e colonne customerID
e customerFirstName
devono essere nascosti.
ho scritto questo codice e funziona:
DataTable dTable = dataGridView.GetTable().Tables[0];
foreach (DataRow dataRow in dataGridView.GetTable().Tables[0].Rows)
{
int n = dataGridView.Rows.Add();
foreach (DataColumn dataColumn in dTable.Columns)
{
dataGridView.Rows[n].Cells[dataColumn.ColumnName].Value = dataRow[dataColumn.ColumnName].ToString();
}
}
Ma perché DataGridView dosen't fare questo per me con questo codice:
dataGridView.DataSource = dataSet.Tables[0].DefaultView;
Ragazzi, grazie per il vostro aiuto, ma non voglio dedicare altro tempo a questo. Anche il mio codice esteso funziona bene, quindi non voglio più cambiarlo. Cordiali saluti – Jooj