错误:复杂数据绑定接受IList或IListSource作为数据源

本文关键字:IListSource 数据源 IList 复杂 数据绑定 错误 | 更新日期: 2023-09-27 18:13:20

我正在尝试在医院预订,当患者选择诊所时,它应该列出所选诊所的医生姓名

我在项目数据集向导的TableAdapter中进行查询当我在Dataset中测试它或从ComboBox向导绑定它时,它工作得很好但是当我试图使用comboBox.DataSource更改comboBox的数据时,我得到了这个错误:

Complex DataBinding接受一个illist或一个IListSource .

下面是我的代码:
private void Reservation_Load(object sender, EventArgs e)
{
    // TODO: This line of code loads data into the 'mRMSDataSet.Departments' table. You can move, or remove it, as needed.
    this.departmentsTableAdapter.FillByCLinics(this.mRMSDataSet.Departments);
}
private void clinicNameComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    clinicDoctorsComboBox.DataSource = this.clinicDoctorsTableAdapter.FillByClinicDoctors(this.mRMSDataSet.ClinicDoctors, Convert.ToInt32(clinicNameComboBox.SelectedValue.ToString()));
    clinicNameComboBox.DisplayMember = "empName";
    clinicNameComboBox.ValueMember = "empId";
}

错误:复杂数据绑定接受IList或IListSource作为数据源

这个错误是自解释的,并且有文档记录。当你给组合框的DataSource属性赋值时,该值不实现IListIListSource接口,你将收到ArgumentException:

Complex DataBinding接受一个illist或一个IListSource .

在上面的代码中,您将Fill方法的结果(通常是int)分配给ComboBoxDataSource。相反,您应该首先将Fill分配给DataTable,然后将DataTable分配给控件的DataSource,如下所示:

this.someTableAdapter.Fill(this.someDataSet.SomeTable);
comboBox1.DataSource = this.someDataSet.SomeTable;