Helo,
I got this problem with a c# DataGridView in VS2005:
The DataGridView has 2 columns: colArtigoGenerico, colArtigoFinal; and this columns are populated with data from 2 columns from a DataTable: "Detalhes".
1st i populate the DataGrid with a Datatable using this code:
string select = "SELECT a.CArtigoGenerico, a.CArtigoFinal " +
"FROM ArtigosGenericos a ORDER BY a.CArtigoGenerico ";
SqlDataAdapter adaptador = new SqlDataAdapter(select, ligacao);
adaptador.Fill(Detalhe, "Detalhes");
// Populate the Grid:
DGV.AutoGenerateColumns = false;
DGV.DataSource = Detalhe.Tables["Detalhes"];
DGV.Columns["colArtigoGenerico"].DataPropertyName = "CArtigoGenerico";
DGV.Columns["colArtigoFinal"].DataPropertyName = "CArtigoFinal";
ColArtigoGenerico.ValueMember = DGV.Columns[0].DataPropertyName;
ColArtigoFinal.ValueMember = DGV.Columns[1].DataPropertyName;
The above code is in a button_click event. And at the 1st time i run it, the grid is populated correctly. Then i set the DataSource to null and the DataGridView, as expected, collapses and shows no record.
Then i click again in the 1st button, and the DataGridView, this time, shows no record.
In a debug session i see that the DataTable has some records, and after the code line:
DGV.DataSource = Detalhe.Tables["Detalhes"];
The DGV.RowCount property returns 0, that's why it shows no record in the Grid.
But the DataTable that is the DataSource for the Grid has 3 records.
Why this behaviour in the 2nd and following times?
TIA,
Joaquim
Loading
Joaquim CorreiaPosted Nov 15, 2007, 3:29 AM
Thank you Muhammad.
It helped me, and solved my problem.
Joaquim
Muhammad Shahid FarooqPosted Nov 14, 2007, 3:02 PM
if (Detalhe.Tables.Contains("Detalhes"))
{
Detalhe.Tables["Detalhes"].Clear();
}
Please add the above check before the following line of code.
adaptador.Fill(Detalhe, "Detalhes");
I think this may help you.