Добавьте столбец с серийным номером в datagridview, чтобы табличная модель была сгенерирована из базы данных
Я создал datagridview PlanningDataView, который связывает значение базы данных, которую я использую ADO.NET модель базы данных
private void MainDashboard_Load(object sender, EventArgs e) { int numberRow = 0; var planningList = _db.Plannings.Select((q) => new {ID = numberRow, Address = q.Address, Phone = q.Phone, Date = q.Date }).ToList(); PlanningDataView.DataSource = planningList; }
Однако я хочу сделать столбец ID в первой сетке для генерации значения инкремента, точно так же, как серийные номера.
private void PlanningDataView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { int sno = 1; foreach (DataGridViewRow row in PlanningDataView.Rows) { row.Cells[0].Value = sno++; } //PlanningDataView.AutoResizeColumns(); }
Выход таков, идентификатор итерации, но только 0 число, то, что я хочу, это 1,2, 3 и т. д
Что я уже пробовал:
Я удалить лямбда-идентификатор запроса, и решили добавить новый столбец после
var planningList = _db.Plannings.Select((q) => new {Address = q.Address, Phone = q.Phone, Date = q.Date }).ToList(); PlanningDataView.DataSource = planningList;
Это, сломать стиль стола, но работать
private void PlanningDataView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { int sno = 1; string ID = "ID"; string headerID = "ID"; if (PlanningDataView.Columns.Contains(ID)) PlanningDataView.Columns.Remove(ID); { PlanningDataView.Columns.Add(ID, headerID); } PlanningDataView.Columns[ID].DisplayIndex = 0; foreach (DataGridViewRow row in PlanningDataView.Rows) { row.Cells[0].Value = sno++; } //PlanningDataView.AutoResizeColumns(); //foreach (DataGridViewRow row in PlanningDataView.Rows) //{ // PlanningDataView.Rows[0].HeaderCell.Value = string.Format("{0} ", row.Index + 1).ToString(); // row.Height = 25; //} }