2016-04-12 3 views
3

У меня есть DataTable, который имеет эти columsn:Выбор нескольких строк из DataTable с помощью Linq

AlertEmail , ClosingDate , OpeningDate , LocationTitle , JobTitle 

Я хочу Искать в этом DataTable и найти записи для каждого AlertEmail. Я делаю это, но MailInfo возвращается NULL.

DataTable dt = amail.GetAllJobAlertForSend(); 

var AllEmail = dt.AsEnumerable() 
       .Select(row => new {attribute1_name = row.Field<string>("AlertEmail") }).Distinct(); 

foreach (var mail in AllEmail) 
{ 
    var MailInfo = from p in dt.AsEnumerable() 
        where p.Field<string>("AlertEmail").Trim() == mail.ToString() 
        select new 
        { 
         ClosingDate = p.Field<DateTime>("ClosingDate"), 
         OpeningDate = p.Field<DateTime>("OpeningDate"), 
         LocationTitle = p.Field<string>("LocationTitle"), 
         JobTitle = p.Field<string>("JobTitle") 
        }; 

    foreach (var info in MailInfo) 
    { 
     Response.Write(string.Format("{0}", info.ClosingDate)); 
    } 
} 

Что случилось с кодом? Не могли бы вы мне помочь, пожалуйста?

+3

Я думаю, вам нужно использовать mail.attribute1_name вместо mail.ToString() – Viru

+0

@Viru, Огромное спасибо. моя проблема была решена – Farzaneh

+0

Рад я мог бы помочь:) ... Отправил это как ответ – Viru

ответ

1

Как почта является объектом анонимного класса ... Доступ к его свойство будет решить вашу проблему вместо ToString

var MailInfo = from p in dt.AsEnumerable() 
        where p.Field<string>("AlertEmail").Trim() == mail.attribute1_name 
        select new 
        { 
         ClosingDate = p.Field<DateTime>("ClosingDate"), 
         OpeningDate = p.Field<DateTime>("OpeningDate"), 
         LocationTitle = p.Field<string>("LocationTitle"), 
         JobTitle = p.Field<string>("JobTitle") 
        }; 
Смежные вопросы