2010-05-05 2 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

Вы хотите показать датуValue, где Описание = "FRRCD". , , 5 раз? повторяется? Это звучит не так. –

+0

Нет, у меня был бы lbl1Class.Text, где Описание = FRRSD, lbl2Class.Text, где Описание = SORSD и т. Д. – davemackey

ответ

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 %>

Смежные вопросы