我在试图填充组合时遇到了这个非常令人沮丧的错误。
system.argumentException:复杂的数据指标接受为数据源是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();
错误消息说您需要将SDReader转换为列表。请参阅下文有关如何将数据读取器转换为列表的有关:我如何轻松地将datareader转换为list< t>?
顺便说一句,您还应该参数化查询以防止SQL注入攻击。
尝试使用ORM框架,例如EntityFramework或Nhibernate。从长远来看,可能需要一些时间来学习和入门,但会使您的生活变得更加轻松。例如易于绑定,查询中的lambda