3

To get details of a person 'Adam' Sql query

SELECT * FROM tableName WHERE Name = 'Adam'

Linq query in Vb

From tableName In something Where row.Field(Of String)("name").Trim = "Adam"

But to get details of multiple people 'Adam', 'Chris' Sql query

SELECT * FROM tableName WHERE Name IN ('Adam', 'Chris')

Linq query in VB???

Edited: Linq query in VB is

From tableName In something Where {"Adam", "Chris"}.Contains(row.Field(Of String)("name").Trim)

rANth
  • 397
  • 2
  • 7
  • 18
  • 2
    I think it's something like `From tableName In something Where {"Adam", "Chris"}.Contains(row.Field(Of String)("name").Trim)` - making use of [`Enumerable.Contains`](https://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains%28v=vs.90%29.aspx). – Mark May 06 '16 at 16:02
  • Awesome this worked, thanks a lot :) – rANth May 06 '16 at 16:18
  • Cool - added as an answer. – Mark May 06 '16 at 16:48

2 Answers2

2
Dim item= From tableName In something
               where {"Adam", "Chris" }.Contains(u.something)
               select i

Try this code

Chetan Sanghani
  • 2,058
  • 2
  • 21
  • 36
1

You should use Enumerable.Contains, e.g. with an array of the values you are looking for:

Dim dt = New DataTable()
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("Name", GetType(String))
dt.Rows.Add(1, "John")
dt.Rows.Add(2, "Adam")
dt.Rows.Add(3, "Chris")

Dim values = {"Adam", "Chris"}
Dim results =
    From row In dt
    Where values.Contains(row.Field(Of String)("Name").Trim)
For Each row In results
    Console.WriteLine("{0} - {1}", row.Field(Of Integer)("ID"), row.Field(Of String)("Name"))
Next

Output:

2 - Adam
3 - Chris
Mark
  • 8,140
  • 1
  • 14
  • 29