2013-02-21 2 views
5

Только что начал играть с datatable и LINQ сегодня. У меня есть datatable, который получает список имен из базы данных SQL. Я ищу, чтобы вернуть определенное имя из dt, используя LINQ.LINQ Select From DataTable

Я пробовал следующий код без успеха на этом. Есть ли что-то, что я делаю неправильно с кодом.

dt возвращает полный список имен, я просто хочу уменьшить имена до одного имени. В базе данных adventureworks называется имя Blade, я пытаюсь отобразить это только.

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

Я попытался заменить == с .equals. Я совершенно не знаком с концепцией использования языкового интергрированного запроса.

, когда я запускаю код, отмечающий, что я не получаю никаких ошибок, просто нет данных.

+0

Что происходит, когда вы запускаете этот код? – Stu

+0

Кроме того, почему вы используете это вместо реального LINQ2SQL? – Stu

+0

@Stu: Как еще вы используете Linq с DataTable? – IAbstract

ответ

6

Вы определяете свой запрос, но не используете его.

Ваша линия:

dataGridView1.DataSource = q; 

должно быть:

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

Большое спасибо – Inkey

+0

@lnkey, если ответ правильный, отметьте его как правильное – Chief