我做了一个项目,我需要在其中运行查询并将列表中的答案获取到数据网格中。
这是我的代码:主要:
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
方法返回单个Idophalen
。ItemsControl
的ItemsSource
属性只能设置为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 };