跳到主要內容

VB.NET LINQ 語法 1

> linq to datatable filter
Dim empData = GetEmpData()
Dim datatextfield = empData.Columns.Cast(Of DataColumn).Select(Function(x) x.ColumnName)(0)  '取得欄位名稱
Dim datavaluefield = empData.Columns.Cast(Of DataColumn).Select(Function(x) x.ColumnName)(1)
Dim vs1 = From x In empData.AsEnumerable Where x.Field(Of String)("VS_Flag") = "1" _     '過濾條件
          Select New With {.namec = x.Field(Of String)(datatextfield), .emp_no = x.Field(Of String)(datavaluefield)}
Dim vs0 = From x In empData.AsEnumerable Where x.Field(Of String)("VS_Flag") = "0" _
          Select New With {.namec = x.Field(Of String)(datatextfield), .emp_no = x.Field(Of String)(datavaluefield)}

Me.DropDownList1.DataSource = vs1
Me.DropDownList1.DataTextField = datatextfield
Me.DropDownList1.DataValueField = datavaluefield
Me.DropDownList1.DataBind()
Me.DropDownList2.DataSource = vs0
Me.DropDownList2.DataTextField = datatextfield
Me.DropDownList2.DataValueField = datavaluefield
Me.DropDownList2.DataBind()
   
Protected Function GetEmpData() As DataTable
     Return QueryGetDataTable("  select  namec,emp_no,VS_Flag  from hmc_emp ")
End Function
---------------------------------------------------------------------
Dim dt = QueryGetDataTable("SELECT  NameC, Emp_No From HMC_Emp where vs_flag  ='1' and job_title_cd in ('01','02','0','04') ") _
.AsEnumerable.Select(Function(x) New With {.NameC = x.Field(Of String)("NameC"), .Emp_No = x.Field(Of String)("Emp_No")})
ddl.DataSource = dt
ddl.DataTextField = "NameC"
ddl.DataValueField = "Emp_No"
ddl.DataBind()
---------------------------------------------------------------------
 Protected Function IsRisCategory() As Boolean
        Dim depts As String() = {"MRI", "Endoscopy", "Ultrasound", "Breast_Photography", "Bone_Density", "CT"}
        Dim x = depts.Where(Function(y) y = Request("dept")).Select(Function(z) z)
        If x.ToString.Length > 0 Then
            Return True
        Else
            Return False
        End If
    End Function
---------------------------------------------------------------------
var x --> dim x
x.Field<string> --> x.Field(Of String)
x => x.ColumnName --> Function(x) x.ColumnName
select new { namec = x.Field<string>("columnName")} --> Select New With { .namec = x.Field(Of String)("columnName")}
---------------------------------------------------------------------