我正在获得" System.Collections.Generic.List"而不是来自数据库的数据

时间:2017-02-23 16:16:24

标签: c# sqlite uwp

我正在开发一个开发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是一个文本框

3 个答案:

答案 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;
    }