2012-09-28 22 views
0

請幫幫我,怎麼下面的SQL查詢轉換爲LINQ的聲明在vb.netSQL多列小組通過,以便通過對LINQ的

select distinct PATIENT_DIAGNOSIS_DESCRIPTION, PATIENT_DIAGNOSIS_CODE, 
     PATIENT_DIAGNOSIS_ACCOUNT,PATIENT_DIAGNOSES_STATUS 
from  MF_PATIENT_DIAGNOSES 
where PATIENT_DIAGNOSIS_ACCOUNT= '31' 
AND  UPPER(PATIENT_DIAGNOSES_STATUS) <> 'ENTRY ERROR' 
GROUP BY PATIENT_DIAGNOSIS_DESCRIPTION, PATIENT_DIAGNOSIS_CODE, 
     PATIENT_DIAGNOSIS_ACCOUNT,PATIENT_DIAGNOSES_STATUS 
ORDER BY PATIENT_DIAGNOSIS_DESCRIPTION 

回答

1

我已經在C#寫的,你可以把它轉換到VB

您可以根據列的類型像item.Field更改申請類型字段

var result = (from item in MF_PATIENT_DIAGNOSES.AsEnumerable() 
        where item.Field<int>("PATIENT_DIAGNOSIS_ACCOUNT") == 31 && item.Field<string>("PATIENT_DIAGNOSES_STATUS").ToUpper() != "ENTRY ERROR" 
        orderby item.Field<string>("PATIENT_DIAGNOSIS_DESCRIPTION") 
        select new 
        { 
         PATIENT_DIAGNOSIS_DESCRIPTION = item.Field<string>("PATIENT_DIAGNOSIS_DESCRIPTION"), 
         PATIENT_DIAGNOSIS_CODE = item.Field<string>("PATIENT_DIAGNOSIS_CODE"), 
         PATIENT_DIAGNOSIS_ACCOUNT = item.Field<string>("PATIENT_DIAGNOSIS_ACCOUNT"), 
         PATIENT_DIAGNOSES_STATUS = item.Field<string>("PATIENT_DIAGNOSES_STATUS "), 
        }).Distinct(); 

我轉換使用此http://www.developerfusion.com/tools/convert/csharp-to-vb/轉換器

Dim result1 = (From item In MF_PATIENT_DIAGNOSES.AsEnumerable() Where item.Field(Of Integer)("PATIENT_DIAGNOSIS_ACCOUNT") = 31 AndAlso item.Field(Of String)("PATIENT_DIAGNOSES_STATUS").ToUpper() <> "ENTRY ERROR"Order By item.Field(Of String)("PATIENT_DIAGNOSIS_DESCRIPTION")New With { _ 
Key .PATIENT_DIAGNOSIS_DESCRIPTION = item.Field(Of String)("PATIENT_DIAGNOSIS_DESCRIPTION"), _ 
Key .PATIENT_DIAGNOSIS_CODE = item.Field(Of String)("PATIENT_DIAGNOSIS_CODE"), _ 
Key .PATIENT_DIAGNOSIS_ACCOUNT = item.Field(Of String)("PATIENT_DIAGNOSIS_ACCOUNT"), _ 
Key .PATIENT_DIAGNOSES_STATUS = item.Field(Of String)("PATIENT_DIAGNOSES_STATUS ") 
}).Distinct()