([sqldatareader to ComboBox]) - 复杂的数据指标接受为数据源或IListsource



我在试图填充组合时遇到了这个非常令人沮丧的错误。

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

最新更新