J'ai un DataGridView en C# qui se remplit avec les clients en fonction des critères de recherche lorsqu'une personne clique sur "rechercher". Le problème que j'ai est que lorsque la personne clique sur le bouton de recherche plus d'une fois pour rechercher des clients, ou si l'utilisateur veut faire une recherche différente, tous les détails de la dernière recherche sont toujours dans la vue de données. Le problème majeur en ce moment n'est pas que les colonnes ne sont pas supprimées ou que des extras sont ajoutés, mais que l'index de la colonne du bouton dans le datagridview devient "0" après avoir cherché plus d'une fois.Vider un DataGridView
Maintenant que j'ai compris le problème, je pense que je vais garder tous les détails ici au cas où quelqu'un voudrait regarder les détails à l'avenir. Le problème était, semble-t-il, que lorsque je supprime le custDataGridView.DataSource = null; partie, tout semblait fonctionner
Comme il semble y avoir une certaine ambiguïté, voici le code complet:
DataGridViewButtonColumn custAddJobSelect = new DataGridViewButtonColumn();
Datatable dt = new Datatable();
// ---> This was the culprit ---> custDataGridView.DataSource = null;
dt.Rows.Clear();
#region SQL connection String
...//CustQuery is the SQL stuff, conn is connection to DB.
#endregion
da = new System.Data.SqlClient.SqlDataAdapter(CustQuery, conn);
da.Fill(dt);
conn.Close();
custDataGridView.DataSource = dt;
if (AddJobGone == false)
{
AddJobGone = true;
custAddJobSelect.DisplayIndex = 0;
custDataGridView.Columns.Add(custAddJobSelect);
}
private void custDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == this.custDataGridView.Columns.Count - 1)
{
string addJobsCustNo = custDataGridView.Rows[e.RowIndex].Cells[0].FormattedValue.ToString();
txtAddJobsCustNo.Text = addJobsCustNo;
pnlAddJobSearchCustomer.Visible = false;
}
}
Merci pour votre patience, espérons que cela aide quelqu'un d'autre!