2013-05-13 5 views
0

Мне нужно выбрать другой столбец в том же запросе, поскольку при создании одной строки мне нужно добавить значение в ту же строку.Выберите 2 значения из LINQ в foreach

// Код

'Loop through the transactions 
      For Each iTransactionid In (From TransactionFieldLinq In transactionFieldsCollection Select TransactionFieldLinq.TransactionId).Distinct 

       'Create a new data row 
       DataRow = DataTable.NewRow() 

       'Set the data row properties 
       DataRow("TransactionId") = iTransactionid 

       'Loop through the transaction fields collection 
       For Each TransactionField In (From TransactionFieldLinq In transactionFieldsCollection Where TransactionFieldLinq.TransactionId = CInt(DataRow("TransactionId"))) 

        'Set the data row properties 
        DataRow(CStr(TransactionField.FieldId)) = TransactionField.FieldValue 

       Next 

       'Add the data row to the data table 
       DataTable.Rows.Add(DataRow) 

      Next 

transactionFieldCollection имеет другое свойство StartDate, который находится в формате DateTime и я должен выбрать StartDate столбец также в том же запросе, и привязать его к DataTable вроде TransactionID.

Как я могу это достичь?

ответ

0

Надеется, что это помогает.

// Код

'Loop through the transactions 
       For Each iTransactionid In (From TransactionFieldLinq In transactionFieldsCollection Select TransactionFieldLinq.TransactionId).Distinct 

        'Create a new data row 
        DataRow = DataTable.NewRow() 

        'Set the data row properties 
        DataRow("TransactionId") = iTransactionid 

        'Loop through the transactions for start date 
        For Each dtStartDate In (From TransactionFieldLinq In transactionFieldsCollection Where TransactionFieldLinq.TransactionId = iTransactionid And TransactionFieldLinq.StartDate <> CDate("12:00:00 AM") Select TransactionFieldLinq.StartDate) 

         'Set the data row properties 
         DataRow("StartDate") = dtStartDate 

        Next 
        'Loop through the transaction fields collection 
        For Each TransactionField In (From TransactionFieldLinq In transactionFieldsCollection Where TransactionFieldLinq.TransactionId = CInt(DataRow("TransactionId"))) 

         'Set the data row properties 
         If (TransactionField.FieldId <> 0) Then 
          DataRow(CStr(TransactionField.FieldId)) = TransactionField.FieldValue 
         End If 
        Next 

        'Add the data row to the data table 
        DataTable.Rows.Add(DataRow) 

       Next 
+0

Спасибо, это помогло мне ..... – iamCR

0

Вам нужен анонимный вид.

(From TransactionFieldLinq In transactionFieldsCollection 
Select TransactionFieldLinq.TransactionId, 
TransactionFieldLinq.StartDate).Distinct 
+0

Я попытался это, но я не могу закончить целое. можете ли вы опубликовать полный текст? – iamCR

0
select new {TransactionFieldLinq.TransactionId, 
TransactionFieldLinq.StartDate} 
Смежные вопросы