2013-05-13 45 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}