在尝试填充组合框时,我遇到了非常令人沮丧的错误。
System.ArgumentException:复杂DataBinding接受IList或IListSource作为数据源
这是导致它的代码段。
main.cmd.Connection = main.con;
main.cmd.CommandText = "SELECT num_innovation FROM Innovation INNER JOIN Activite ON Innovation.num_activite = Activite.num_activite WHERE Activite.num_activite = " + comboBox_activite.SelectedValue;
main.con.Open();
System.Data.SqlClient.SqlDataReader sdReader = main.cmd.ExecuteReader();
comboBox_innovation.DisplayMember = "num_innovation";
comboBox_innovation.ValueMember = "num_innovation";
comboBox_innovation.DataSource = sdReader; //Error here
sdReader.Close();
main.con.Close();
答案 0 :(得分:0)
错误消息显示您需要将sdReader转换为列表。 请参阅下文,了解如何将数据读取器转换为列表: How can I easily convert DataReader to List<T>?
顺便说一句,您还应该参数化您的查询以防止SQL注入攻击。
尝试使用ORM框架,例如EntityFramework或Nhibernate。学习和开始可能需要一些时间,但从长远来看,这将使您的生活更轻松。例如容易绑定,查询中的lambda