Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我得到的是“System.Collections.Generic.List”,而不是数据库中的数据_C#_Sqlite_Uwp - Fatal编程技术网

C# 我得到的是“System.Collections.Generic.List”,而不是数据库中的数据

C# 我得到的是“System.Collections.Generic.List”,而不是数据库中的数据,c#,sqlite,uwp,C#,Sqlite,Uwp,我正在做一个开发UWP应用程序的项目。我已经实现了Sqlite数据库来存储有关产品的信息 我的页面中有一个组合框,显示所有产品的序列号。我已将组合框的SelectionChanged事件的代码编写为: private void InvoiceSerial_SelectionChanged(object sender, SelectionChangedEventArgs e) { var a = conn.Query<Product> (

我正在做一个开发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();
    }
InvoiceBrand是一个文本框

您的a变量可能是List类型,这就是调用a.ToString返回该类型的字符串表示形式的原因

您可能应该做的是检索第一个元素,只需使用[0],然后输出brand字段的值。

您的a变量可能是List类型,这就是调用a.ToString返回该类型的字符串表示形式的原因


您可能应该做的是检索第一个元素,只需使用[0],然后输出brand字段的值。

即使SQL查询的结果正好是一行一列,仍然需要任何语言的查询函数来返回完整的表,处理结果表包含多个项的一般情况。您要查找的对象应该是列表中的第一个对象

即使SQL查询的结果正好是一行一列,仍然需要任何语言的查询函数来返回完整的表,以处理结果表包含多个项的一般情况。您要查找的对象应该是列表中的第一个对象

好吧,多亏了@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;
    }

好吧,多亏了@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;
    }

一个列表可以包含多个。使用产品p=query.FirstOrDefault;ifp!=null{InvoiceBrand.Text=p.brand;}使用ToString方法对ProductList甚至单个产品应该做什么?您的解决方案有效@TimSchmelter谢谢!一个列表可以包含多个。使用产品p=query.FirstOrDefault;ifp!=null{InvoiceBrand.Text=p.brand;}使用ToString方法对ProductList甚至单个产品应该做什么?您的解决方案有效@TimSchmelter谢谢!我照你说的做了,但当我给品牌字段分配[0]时,我遇到了一个错误,无法将类型“MyProject.Inventory.Product”隐式转换为“string”,我知道,这就是我所说的“然后输出品牌字段的值”的意思!无论如何,我看你已经解决了你的问题,所以请把你的答案标记为正确答案!:我照你说的做了,但当我给品牌字段分配[0]时,我遇到了一个错误,无法将类型“MyProject.Inventory.Product”隐式转换为“string”,我知道,这就是我所说的“然后输出品牌字段的值”的意思!无论如何,我看你已经解决了你的问题,所以请把你的答案标记为正确答案!:From:引用和可空类型的默认值为null。与它所基于的注释不同,您的代码不处理p==null的情况。由于这不是一般情况,至少应该注意,p.Brand可以提出NullReferenceException.noted。感谢@IInspectableFrom:reference和nullable类型的默认值为null。与它所基于的注释不同,您的代码不处理p==null的情况。由于这不是一般情况,至少应该注意,p.Brand可以提出NullReferenceException.noted。谢谢@IInspectable