Ok bardziej rozszerzony przykładowe:
zrobiłem w projektancie niektóre kolumny:
nazwy kolumn: customerID and customerFirstName
kolumna HeaderText: Ident. and First name
następnie uzyskać pewne dane z SQL tabeli ...
sql = "select customerID, customerFirstName From customer;";
dataGridView.AutoGenerateColumns = false;
dataGridView.DataSource = dataSet.Tables[0].DefaultView;
i kolumny tabeli sql są takie same jak nazwy kolumn w dataGridView.
Rezultat, który otrzymam, gdy dataGridView.AutoGenerateColumns = false;
jest dwukolumnowym danymiGridView z headerText Ident. | First name
.
Po ustawieniu dataGridView.AutoGenerateColumns = true;
otrzymuję kolumny dataGridView w następujący sposób: Ident. | First name | customerID | customerFirstName
.
wszystkie wiersze poniżej Ident
i First name
są empty
i wszystko inne poniżej customerID
i customerFirstName
są ok
.
Teraz chcę, że wiersze poniżej customerID
i customerFirstName
byłoby pod Ident
i First name
i kolumny customerID
i customerFirstName
powinny być ukryte.
Napisałem ten kod i to działa:
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();
}
}
ale dlaczego DataGridView nie robi to dla mnie zrobić z tym kodem:
dataGridView.DataSource = dataSet.Tables[0].DefaultView;
Serdecznie dziękuję za pomoc, ale nie chcę poświęcać więcej czasu na to. Mój rozszerzony kod również działa dobrze, więc nie chcę go już zmieniać. Pozdrawiamy – Jooj