我正在开发一个开发UWP应用程序的项目。我已经实现了Sqlite数据库来存储有关产品的信息。
我的页面中有一个组合框,显示所有产品的序列号。我已将组合框SelectionChanged
事件的代码编写为:
private void InvoiceSerial_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var a = conn.Query<Product>
("select brand from product where serial=?", InvoiceSerial.SelectedItem.ToString());
InvoiceBrand.Text = a.ToString();
}
但我没有展示品牌名称,而是获得了这个:
System.Collections.Generic.List`1[MyProject.Inventory+Product]
InvoiceBrand
是一个文本框
答案 0 :(得分:2)
即使SQL查询的结果恰好是一行一列,仍然需要使用任何语言的查询函数来返回一个完整的表,以处理结果表具有多个项的一般情况。您正在寻找的对象应该是列表中的第一个对象。
答案 1 :(得分:1)
您的a
变量可能是List<MyProject.Product>
类型,这就是为什么调用a.ToString()
会返回该类型的字符串表示形式!
你应该做的是检索第一个元素(只使用a[0]
),然后输出“品牌”字段的值。
答案 2 :(得分:1)
好的,所以我感谢@TimSchmelter
让它发挥作用现在我的代码看起来像这样:
private void InvoiceSerial_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var a = conn.Query<Product>
("select brand from product where serial=?", InvoiceSerial.SelectedItem.ToString());
Product p = a.FirstOrDefault();
InvoiceBrand.Text = p.Brand;
}