C# 无法将类型 'XXXX.Classes.Idophalen' 隐式转换为'System.Collections.IEnumerable'



我做了一个项目,我需要在其中运行查询并将列表中的答案获取到数据网格中。

这是我的代码:主要:

        public UserControlDetails(string Id)
    {
        InitializeComponent();
        var db = new Database();
        var QueriAnswer = db.GetArtikel(Id);
        DGVoedingswaarden.ItemsSource = QueriAnswer;
    }

.db。GetArtikel(id):

        public Idophalen GetArtikel(string id)
    {
        using (var conn = new MySqlConnection(ConnectionString))
        {
                conn.Open();
                var query = "SELECT naam FROM tb_product WHERE Id = '" + id + "'";
                var SelectArtikel = new MySqlCommand(query, conn);
                var reader = SelectArtikel.ExecuteReader();
                while (reader.Read())
                {
                    var Id = reader.GetString(0);
                    var artikel = new Idophalen(Id);
                    return artikel;
                }
        }
        return null;
    }

Idophalen ( 英语: GetId )

   public  class Idophalen
{
    public string Id { get; set; }
    public Idophalen(string Id)
    {
        this.Id = Id;
    }
    public override string ToString()
    {
        return string.Format("{0}", Id);
    }

}

所以问题是代码(DGVoedingswaarden.ItemsSource = QueriAnswer;错误:Cannot implicitly convert type 'XXXX.Classes.Idophalen' to 'System.Collections.IEnumerable'.给出。所以我不知道如何解决这个问题或这意味着什么。Stackoverflow上的其他帖子对我没有帮助,所以我的情况在这里。

如果您需要更多解释,请发表评论

您的GetArtikel方法返回单个IdophalenItemsControlItemsSource属性只能设置为IEnumerable,例如List<Idophalen>。因此,您可以创建一个仅包含从数据库返回的单个对象的列表:

DGVoedingswaarden.ItemsSource = new List<Idophalen>(1) { QueriAnswer };

属性只接受 IEnumerable。 GetArtikel()返回一个不是 IEnumerable 实例的Idophalen

您可以创建一个列表并将结果添加到其中,但这确实不是一个好的解决方案。 你应该重新考虑你想做的事情是合理的。

无论如何,这应该使其工作:

var QueriAnswer = db.GetArtikel(Id);
DGVoedingswaarden.ItemsSource = new List<Idophalen>() { QueriAnswer };

最新更新