This is my code for Datagridview Paging ,why I am getting this ArgumentException unhandeled Child list for field Questions cannot be created.
At this Line of codethis.dataGridView1.DataSource = GetCurrentRecords(1, con);
. Where does i am going wrong
public partial class ShowEngClgList : Form
{
OleDbConnection con = null;
private OleDbCommand cmd1;
private OleDbCommand cmd2;
private OleDbDataAdapter adp1 = null;
DataSet ds;
private int PageSize = 10;
private int CurrentPageIndex = 1;
private int TotalPage = 0;
public ShowEngClgList()
{
InitializeComponent();
try
{
con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb");
con.Open();
}
catch (Exception err)
{
}
cmd1 = new OleDbCommand("Select * from Questions order by QID", con);
ds = new DataSet();
adp1 = new OleDbDataAdapter(cmd1);
adp1.Fill(ds, "Questions");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Questions";
// WORK IN PAGING FOR DATAGRIDVIEW
// Get total count of the pages;
this.CalculateTotalPages();
this.dataGridView1.ReadOnly = true;
// Load the first page of data;
this.dataGridView1.DataSource = GetCurrentRecords(1, con);//Getting exception at this line
}
private void ShowEngClgList_Load(object sender, EventArgs e)
{
}
private void CalculateTotalPages()
{
int rowCount = ds.Tables["Questions"].Rows.Count;
this.TotalPage = rowCount / PageSize;
if (rowCount % PageSize > 0) // if remainder is more than zero
{
this.TotalPage += 1;
}
}
private DataTable GetCurrentRecords(int page, OleDbConnection con)
{
DataTable dt = new DataTable();
if (page == 1)
{
cmd2 = new OleDbCommand("Select TOP " + PageSize + " * from Questions ORDER BY QID", con);
}
else
{
int PreviouspageLimit = (page - 1) * PageSize;
cmd2 = new OleDbCommand("Select TOP " + PageSize +
" * from Questions " +
"WHERE QID NOT IN " +
"(Select TOP " + PreviouspageLimit + " QID from Questions ORDER BY QID) ", con); // +
//"order by customerid", con);
}
try
{
// con.Open();
this.adp1.SelectCommand = cmd2;
this.adp1.Fill(dt);
}
finally
{
con.Close();
}
return dt;
}
}
thanks In advance for any help.
When we are bind to custom data collection to DataGridView through the dataset, just set the datasource only, dont need set the datamember. Therefor removing this line of code is solving the issue and code is working properly.
dataGridView1.DataMember = "EngColeges";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With