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 значение столбца из той же самой строки.

1
задан Patrick Karcher 5 May 2010 в 18:05
поделиться

2 ответа

Я не очень хорошо знаю синтаксис 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
ответ дан 3 September 2019 в 00:46
поделиться

Это может сработать для вас:

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

1
ответ дан 3 September 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: