Хорошо, более расширенный образец:
Я сделал в конструкторе несколько колонок:
имена столбцов: customerID and customerFirstName
заголовок столбцаТекст: Ident. and First name
тогда я получаю некоторые данные из таблицы sql ...
sql = "select customerID, customerFirstName From customer;";
dataGridView.AutoGenerateColumns = false;
dataGridView.DataSource = dataSet.Tables[0].DefaultView;
и столбцы таблицы sql совпадают с именами столбцов в dataGridView.
Результат, который я получаю, когда dataGridView.AutoGenerateColumns = false;
- это dataGridView с двумя столбцами и headerText Ident. | First name
.
Когда я устанавливаю dataGridView.AutoGenerateColumns = true;
, я получаю столбцы dataGridView, например:
Ident. | First name | customerID | customerFirstName
.
все строки ниже Ident
и First name
равны empty
, а все остальные ниже customerID
и customerFirstName
равны ok
.
Теперь я хочу, чтобы строки ниже customerID
и customerFirstName
были бы под Ident
и First name
, а столбцы customerID
и customerFirstName
должны быть скрыты.
Я написал этот код, и он работает:
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();
}
}
Но почему DataGridView не делает этого для меня с этим кодом:
dataGridView.DataSource = dataSet.Tables[0].DefaultView;