2010-05-05 139 views
1

我有一個表,看起來像這樣:VB.NET LINQ結果集操作

ID/Description/textValue/dateValue/timeValue/Type 
1/FRRSD  /NULL /2010-04-16 00:00:00.000/NULL/classdates 

現在,我已經有了一個LINQ命令拉僅排在類型是從該表classdates:

Dim dbGetRegisterDates As New dcConfigDataContext 
Dim getDates = (From p In dbGetRegisterDates.webConfigOptions _ 
       Where p.Type = "classdates" _ 
       Select p) 

我現在想顯示在五個不同的標籤中的數據,像這樣:

lblClass1.Text = "Your class is from " & getDates.Description("FRRSD").dateValue & "to " & getDates.Description("FRRCD").dateValue

lblClass2.Text = "Your class is from " & getDates.Description("SORSD").dateValue & "to " & getDates.Description("SORCD").dateValue

基本上,我想根據描述列值拉一行,然後從同一行返回datevalue列值。

+0

您想要顯示dateValue,其中Description =「FRRCD」。 。 。 5次?重複?這聽起來不對。 – 2010-05-05 17:20:40

+0

不,我會有lbl1Class.Text其中Description = FRRSD,lbl2Class.Text其中Description = SORSD等 – davemackey 2010-05-05 17:30:19

回答

1

我不知道VB.NET語法非常好,所以我會在C#寫的,但你可以創建一個描述日期字典。

var res = (from p dbGetRegisterDates.webConfigOptions 
      where p.Type == "classdates" 
      select new 
      { 
       p.Description, 
       p.dateValue 
      }).ToDictionary(x=>x.Description, x=>x.dateValue); 

那麼你可以做

lblClass1.Text = string.Format("Your class is from {0} to {1}", res["FRRSD"], res["FRRCD"]) 

您可能需要做一些檢查它們的存在了。另外,如果說明在結果中不唯一,您將得到一個異常

1

這會爲你工作:

lblClass1.Text = From c in getDates Where Description = "FRRCD" 
     Select string.Format("Your class is from {0} to {0}", c.dateValue) 

lblClass2.Text = From c in getDates Where Description = "SORCD" 
     Select string.Format("Your class is from {0} to {0}", c.dateValue) 

我懷疑,雖然你真正想要的是創建一個音符每一個你找到記錄。更多類似:

Dim sb = New StringBuilder() 
For each c in getDates 
    sb.Append(string.Format("<p><b>{0}</b>: Your class is from {1} to {1}.</p>" _ 
     , c.Description, c.dateValue) 
Next 
classNotes = sb.toString() 

然後在你的頁面,你就會把<% = classNotes %>