Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting ArgumentException => Child list for field Questions cannot be created

Tags:

c#

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.

like image 730
Durga Avatar asked Aug 06 '13 05:08

Durga


1 Answers

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";
like image 111
Durga Avatar answered Nov 17 '22 16:11

Durga