【问题标题】:Getting an "COMPLEX DATA BINDING ACCEPTS DATA SOURCE AS ILIST" error when i try to populate my data grid in windows form using MS ACCESS当我尝试使用 MS ACCESS 以 Windows 形式填充我的数据网格时出现“复杂数据绑定接受数据源作为 ILIST”错误
【发布时间】:2021-11-04 03:55:12
【问题描述】:

我正在使用访问数据库。我已将连接和数据适配器设为全局变量。 加载表格时,我的组合框会填充所有学生 ID。我正在尝试用我在组合框中选择的学生的所有记录填充我的数据网格。但是,它给了我上述错误。我比较新,确实检查了一些文档,但我无法理解。

namespace P1
{
    public partial class Form2 : Form
    {
        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =d:\DDBS.mdb");
        OleDbDataAdapter adap = new OleDbDataAdapter("Select * from Student", @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =d:\DDBS.mdb");   
        DataSet d1 = new DataSet("Student");

        private void Form2_Load(object sender, EventArgs e)
        {

            adap.Fill(d1, "Student");
            con.Open();
            int x = d1.Tables["Student"].Rows.Count - 1;
            for (int i = 0; i < x; i++)
            {
                comboBox1.Items.Add(d1.Tables["Student"].Rows[i]["sid"]);
            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
           
            OleDbCommand ada = new OleDbCommand( "SELECT  * FROM Student where sid= '" + comboBox1.SelectedItem + "'", con);
            ada.ExecuteNonQuery();
            dataGrid1.DataSource = ada;
            MessageBox.Show("DONE");
        }
    }
}

【问题讨论】:

    标签: c# datagrid ms-access-2010


    【解决方案1】:

    您不能直接将数据适配器用作数据源,但您需要填充即列表/数据表,然后分配它。这里最简单的方法是:

    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataTable students = new DataTable();
    da.Fill(students );
    dataGrid1.DataSource = students ;
    

    【讨论】:

    • 哦,所以我首先应该制作一个数据表并用适配器填充它。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多