2012-11-13 111 views
-2

我試圖通過使用LINQ連接product_nameproduct_prize_kg,以便我可以在下拉列表中顯示它作爲一個字段。當我嘗試這樣做時,出現以下錯誤。LINQ如何連接2 db列以顯示在下拉列表中

value of type 'system.collections.generic.list(of anonymous type)' cannot be converted to ...

我的代碼是這樣的:

Public Function selectAll() As List(Of tblProduct) 
    Dim result = From product In dc.tblProducts 
       Select New With 
       { 
        Key .productID = product.pk_product_id, 
        Key .productNameKg = Convert.ToString(product.product_name) & " " & Convert.ToString(product.product_price_kg) 
       } 

    Return result.ToList() 
End Function 

這是我想填補下拉列表。

<asp:DropDownList ID="DropDownList1" runat="server" 
     DataSourceID="ObjectDataSource1" DataTextField="productNameKg" 
     DataValueField="productID"> 
    </asp:DropDownList> 

感謝

Grtz Simke

回答

1
Public Function selectAll() As List(Of Product) 
    Dim result = From product In tblProducts 
       Select New Product With 
      { 
       .ProductId = product.pk_product_id, 
       .ProductNameKg = Convert.ToString(product.product_name) & " " & Convert.ToString(product.product_price_kg) 
      } 


    Return result.ToList() 
End Function 



Public Class Product 

    Property ProductId As String 

    Property ProductNameKg As String 

End Class 
+0

不工作。在第一個括號({)處出現錯誤:在對象初始值設定項中初始化的字段或屬性的名稱必須以'。'開頭。感謝您的幫助 –

+0

如果我刪除.productID前的密鑰錯誤消失,但我得到一個新的錯誤:'productID'不是'tblProduct'的成員,但我想要做的是創建我自己的成員這樣我可以在下拉列表中顯示2個字段。我可以在我的下拉列表中顯示product_name,但不能顯示product_name + product_prize_kg。 –

+0

您試圖將其作爲List(tblProduct)返回,但是您要創建一個具有兩個屬性(productID和productNameKg)的匿名類型。如果你想返回列表,你需要創建兩個屬性的類。如果你沒有將它作爲一個函數的值返回(即在同一個方法中有綁定調用和Linq查詢),那麼它就可以工作。 –