2012-10-04 6 views
0

일부 속성 (세션, 거래, 학생 등)의 세부 정보를 얻고 싶습니다. 그리고 linq를 사용하여 ProgressCard 테이블에 ID를 가지고 있습니다. 는linq을 사용하는 표 2의 ID를 가진 표 1에서 이름을 가져옵니다.

<ShowProgressCard> 
<Session>System.Collections.Generic.List`1[System.String]</Session> 
<Trade>System.Collections.Generic.List`1[System.String]</Trade> 
<Student>System.Collections.Generic.List`1[System.String]</Student> 
<Test>System.Collections.Generic.List`1[System.String]</Test> 
<MaxMarks>System.Collections.Generic.List`1[System.Int32]</MaxMarks> 
<MarksObtain>123</MarksObtain> 
<Percentage>0.000000000000000e+000</Percentage> 
</ShowProgressCard> 

는 실수를 추적하는 데 도움이 제발 .. 나는이

public List<ShowProgressCard> GetCardListToShow() 
    { 
     try 
     { 
      List<ShowProgressCard> CardList = new List<ShowProgressCard>(); 
      using (ProgressCardLINQDataContext c = new ProgressCardLINQDataContext()) 
      { 
       CardList = (from card in c.GetTable<T_PROGRESSCARD>() 
          where card.RecordStatus.Equals(RecordStatus.Active) 
          select new ShowProgressCard 
          { 
           Session=(from session in c.T_SESSIONs 
             where session.Id.Equals(card.SessionId) 
             select session.Name).ToString(), 
           Trade=(from trade in c.T_TRADEs 
             where trade.Id.Equals(card.TradeId) 
             select trade.Name).ToString(), 
           Student=(from student in c.T_STUDENTs 
             where student.Id.Equals(card.StudentId) 
             select student.Name).ToString(), 
           Test=(from test in c.T_TESTs 
             where test.Id.Equals(card.TestId) 
             select test.Name).ToString(), 
           MaxMarks = (from test in c.T_TESTs 
              where test.Id.Equals(card.TestId) 
              select test.MaxMarks).ToString(), 
           MarksObtain=card.MarksObtain.ToString(), 
           Percentage=card.Percentage.ToString("N2") 
          }).ToList<ShowProgressCard>(); 
      } 
      return CardList; 
     } 
     catch 
     { 
      return new List<ShowProgressCard>(); 
     } 
    } 

을하고 있지만, 나에게 예상치 못한 값을 제공하고 XML

에 결과 데이터를 저장합니다.

답변

1
      Session=(from session in c.T_SESSIONs 
            where session.Id.Equals(card.SessionId) 
            select session.Name).ToString(), 
          Trade=(from trade in c.T_TRADEs 
            where trade.Id.Equals(card.TradeId) 
            select trade.Name).ToString(), 
          Student=(from student in c.T_STUDENTs 
            where student.Id.Equals(card.StudentId) 
            select student.Name).ToString(), 
          Test=(from test in c.T_TESTs 
            where test.Id.Equals(card.TestId) 
            select test.Name).ToString(), 
          MaxMarks = (from test in c.T_TESTs 
             where test.Id.Equals(card.TestId) 
             select test.MaxMarks).ToString(), 

이 블록은 값의 IEnumerables 만 반환합니다. ToString() 앞에 Single() 또는 First()를 추가하십시오.

MaxMarks = (from test in c.T_TESTs where test.Id.Equals(card.TestId) select test.MaxMarks).Single().ToString(), 
+0

감사합니다. – mitali

+0

소수점 이하 2 자리로 나오려면 퍼센테이지를 가져오고 싶습니다. 나는 ToString 메서드에서 "N2"를 시도하지만 그것은 일하는 일을한다. 왜 그런지 알아? – mitali

+0

MSDN은 "C# String Formatting"에 대해 알고 있지만 메모리에서 알지 못합니다. – TGlatzer