2016-04-12 5 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.ToStringのmail.attribute1_name() – 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") 
        };