2017-02-23 17 views
0

我正在開發一個項目來開發UWP應用程序。我已經實現了Sqlite數據庫來存儲有關產品的信息。我得到「System.Collections.Generic.List」而不是數據庫中的數據

我的頁面中有一個組合框,顯示所有產品的序列號。我寫的代碼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是一個文本框

+1

列表可以包含多個。使用Product p = query.FirstOrDefault(); if(p!= null){InvoiceBrand.Text = p.brand; }' –

+0

什麼是應該用ToString()方法做一個ProductList(甚至是單個產品)? – Steve

+0

您的解決方案可以工作@TimSchmelter非常感謝您! – Jestin

回答

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; 
    } 
+1

從[Enumerable :: FirstOrDefault](https://msdn.microsoft.com/zh-cn/library/default.aspx com/en-us/library/bb340482.aspx):*「引用和可爲空的類型的默認值爲null」。*您的代碼(與它所基於的註釋不同)不處理大小寫,其中'p = = null'因爲這不是一般情況,所以至少應該注意,'p.Brand'可以引發一個'NullReferenceException'。 – IInspectable

+0

注意。謝謝@IInspectable – Jestin

1

您的a變量可能類型爲List<MyProject.Product>,這就是爲什麼調用a.ToString()返回類型的字符串表示形式!

您應該做的是檢索第一個元素(只需使用a[0]),然後輸出「品牌」字段的值。

+0

是的你是對的。 var a類型爲List 。 – Jestin

+0

我做了你說的,但是當我將[0]分配給品牌字段時,出現錯誤「無法將類型'MyProject.Inventory.Product'隱式轉換爲'字符串' – Jestin

+0

我知道,這就是我的意思,然後輸出「品牌」字段的價值!無論如何,我看到你已經解決了你的問題,所以請把你的答案標記爲正確!:) –

2

即使SQL查詢的結果恰好是一行和一列,仍然需要任何語言的查詢函數來返回完整的表,以處理結果表包含多個項目的一般情況。您要查找的對象應該是列表中的第一個對象。

相關問題