2014-09-18 33 views
0

我真的很新vb和linq,所以我很抱歉,如果我有什麼是完全錯誤的..我有一個頁面,是一個項目的詳細視圖。其中,我想顯示所有鏈接項目的列表。這是我..(我猜是非常錯誤的)從vb.net使用LINQ的數據庫顯示列表

Private Sub divLinks_OnLoad(sender As Object, e As EventArgs) Handles lbLinks.DataBinding 
    Dim Link1 = (From a In ods.groups 
       Where (a.PID = PID_Number) 
       Select a).ToList 

    dvLinks = Link1.Text 
End Sub 

我甚至不知道我應該把我的代碼股利或lisbox或東西后面。我敢肯定,這是超級簡單,我只是腦死亡,現在我猜...

編輯

我想這一點,沒有錯誤,但仍然沒有返回任何東西

Private Sub dvLinks_Load(sender As Object, e As EventArgs) Handles dvLinks.Load 
    Call LoadLinks() 
End Sub 

Public Function LoadLinks() 
    Dim Link1 = (From a In ods.groups 
    Where (a.PID = PID_Number) 
    Select a).ToList 

    Return Link1.Count 

End Function 
+0

慢慢地。 'Link1'它的'List(Of T)'類型的對象,沒有名爲'Text'的屬性。但它有一個名爲'Count'的屬性(actualy函數,而不是屬性),例如。所以請嘗試編寫:'dvLinks = Link1.Count'。這樣我們就會知道數據庫查詢是否有效。 – dovid 2014-09-18 15:52:30

+0

非常好。這個錯誤消息讓我們感到很不快她說我們正在試圖將一個數字'HtmlGenericControl'類型的變量。由谷歌我找到[MSDN](http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlgenericcontrol(v = vs.110).aspx)該對象有很多屬性,比如'InnerText'。嘗試把數字放在那裏,像這樣:'dvLinks.InnerText = Link1.Count' – dovid 2014-09-18 17:00:43

+0

太棒了!這有效......它顯示了數字2(並且只有兩件事符合查詢)將它列出來的下一步是什麼? – kelseywhiting 2014-09-18 17:41:34

回答

0

你可以在循環中瀏覽列表(事實上,因此,您不需要通過「ToList」導出)。

例如:

Private Sub dvLinks_Load(sender As Object, e As EventArgs) Handles dvLinks.Load 
    Dim Link1 = From a In ods.groups 
       Where (a.PID = PID_Number) 
       Select a 

    For Each group In Link1 
     dvLinks.InnerText += group 
    End For 
End Sub 

我承擔集團的翻譯爲一個字符串(實際上是由該方法ToString)返回一些「有趣」。如果沒有,你可以訪問像屬性:group.Name

這是簡單的,但在性能方面,它是不建議一遍又一遍(這是在不同的地方,每次重新創建將字符串記憶)。最好由LINQ編寫像這樣:

Dim Link1 = From a In ods.groups 
       Where (a.PID = PID_Number) 
       Select a.ToString() 

    dvLinks.InnerText = String.Join("<br/>", Link1.ToArray()) 

(需要一點時間才能弄清楚,但不是太難)。

相關問題