([sqlDataReader to comboBox]) - 复杂DataBinding接受IList或IListSource作为数据源

问题描述 投票:0回答:1

在尝试填充comboBox时,我遇到了非常令人沮丧的错误。

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();
c# sql sql-server
1个回答
0
投票

错误消息表明您需要将sdReader转换为列表。请参阅下文,了解如何将数据读取器转换为列表:How can I easily convert DataReader to List<T>?

顺便说一下,您还应该参数化您的查询以防止SQL注入攻击。

尝试使用ORM框架,如EntityFramework或Nhibernate。学习和开始可能需要一些时间,但从长远来看,这将使您的生活更轻松。例如容易绑定,lambda在查询中

© www.soinside.com 2019 - 2024. All rights reserved.