Getting ArgumentException=>;无法创建“问题”字段的子列表

本文关键字:问题 字段 列表 创建 ArgumentException gt Getting | 更新日期: 2023-09-27 18:26:37

这是我的Datagridview分页代码,为什么我在这行代码this.dataGridView1.DataSource = GetCurrentRecords(1, con);中得到这个ArgumentException未被索引的Child list for field Questions cannot be created.。哪里出错了

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;
        }
}

提前感谢您的帮助。

Getting ArgumentException=>;无法创建“问题”字段的子列表

当我们通过数据集将自定义数据集合绑定到DataGridView时,只需设置数据源,不需要设置数据成员。因此,删除这行代码就解决了问题,代码也正常工作。

dataGridView1.DataMember = "EngColeges";