2012-03-11 2 views
0

Iam new для LINQ, но я не знаю, что не так с этим фрагментом кода. Все, что я хочу, это сохранить результат запроса в списке массивов, и это дает мне исключение: индекс был вне диапазона. Должен быть неотрицательным и меньше размера коллекции.Использование предложения where с объединением групп в LINQ

   var JoinLCandSymp = 
      (from symp in SymptomsTable.AsEnumerable() 
       join leftC in LeftChestTable.AsEnumerable() on symp.Field<int>("Symptom_Number") equals leftC.Field<int>("Symptom_Number") into Sgroup 

       from SF in Sgroup 
       where SF.Field<int>("Rank") == 1 && SF.Field<string>("Category") == "Pain" 

       select symp.Field<string>("Symptom_Name") 

       ); 
     foreach (string val in JoinLCandSymp) 
     { 

      GlobalVariables.sympLCWR1Pain.Add(val); 

     } 

Любая помощь действительно была бы полезна. :)

Хорошо, вот еще одна такая же процедура ... что может быть неправильным? Дает то же исключение.

  var JoinLCandSymp = 
     (from symp in SymptomsTable.AsEnumerable() 
      join leftC in LeftChestTable.AsEnumerable() on symp.Field<int>("Symptom_Number") equals leftC.Field<int>("Symptom_Number") 
      where leftC.Field<int>("Rank") == 1 && leftC.Field<string>("Category") == "Pain" 
     // group leftC by symp into SympGroup 
      select symp.Field<string>("Symptom_Name") 

      ); 
    foreach (string val in JoinLCandSymp) 
    { 

     GlobalVariables.sympLCWR1Pain.Add(val); 

    } 
+0

Мне нужно будет увидеть SQL, который заполняет набор данных. Но без этого что-то имеет значение null: Rank, Category или Sympton_Number. Когда вы пытаетесь получить доступ к столбцу, он не работает. – Joe

+0

The SymptomsTable заполняется, и поэтому LeftChestTable..Rank и Category являются столбцами LeftChestTable..Symptom_Number - это как столбец SymptomsTable, так и LeftChestTable .. и я могу без проблем получить доступ к их столбцам. –

+0

Я получил его, парень ... последний код работает сейчас. Я использовал список нестатических массивов, когда в координации с классом я должен был использовать статический ... плохой: p..thanks anyways –

ответ

0

Я думаю, что лучше использует View или USP (магазин пользователя Procedore), когда вы используете USP в .NET вы вернуть ту же ленту данных.

+0

Мне нужно использовать linq вместе с небольшим количеством ADO.net –

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