2013-02-21 12 views
5

Po prostu zacząłem grać dzisiaj z datatable i LINQ. Mam datatable, który pobiera listę nazw z bazy danych SQL. Szukam zwrócić określoną nazwę z dt za pomocą LINQ.LINQ Wybierz z DataTable

Próbowałem następujący kod bez powodzenia w tym. Czy jest coś, co robię źle z kodem.

dt zwraca pełną listę nazw, których szukam, aby zredukować nazwy do jednej nazwy. W bazie danych Adventureworks o nazwie Blade pojawia się nazwa, którą próbuję wyświetlić tylko.

DataTable dt = DAL.GetNames(); 
     try 
     { 
      var q = from myrow in dt.AsEnumerable() 
        where myrow.Field<string>("Name") =="Blade" 
        select myrow; 
      dataGridView1.DataSource = q; 
     } 

Próbowałem zastąpić == z .equals. Jestem całkowicie nowy w koncepcji korzystania z zapytania zintegrowanego z językiem.

Kiedy uruchamiam zauważanie kodu, nie dostaję żadnych błędów i nie zwracam żadnych danych.

+0

Co się dzieje, kiedy uruchomić ten kod? – Stu

+0

Ponadto, dlaczego używasz tego zamiast rzeczywistego LINQ2SQL? – Stu

+0

@Stu: Jak inaczej używasz Linq z DataTable? – IAbstract

Odpowiedz

6

Definiujesz zapytanie, ale w rzeczywistości go nie uruchamiasz.

Twój wiersz:

dataGridView1.DataSource = q; 

musi być:

dataGridView1.DataSource = q.AsDataView(); 
+0

Bardzo dziękuję – Inkey

+0

@lnkey, jeśli odpowiedź jest prawidłowa, oznacz ją jako poprawną – Chief