2013-05-13 46 views
0

我必須在同一個查詢中選擇另一列,因爲當創建單行時,我必須將該值添加到同一行中。從LINQ中選擇2個值在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 2013-05-15 07:07:46

0

你需要一個匿名類型。

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

我已經試過了,但我不能完成整。你可以發佈一個完整的嗎? – iamCR 2013-05-13 13:37:20

0
select new {TransactionFieldLinq.TransactionId, 
TransactionFieldLinq.StartDate}