image1과 비슷한 테이블에서 데이터를 컴파일하고이를 image2와 같은 테이블로 변환하여 표시하려고했습니다. 클래스라는 서버 서버의 목록을 포함 하나 개의 클래스라는 지역 :linq을 사용한 합계 및 그룹화
이미지 1
img1 http://i44.tinypic.com/fjesl2.png
이미지 2
img1 http://i39.tinypic.com/el790o.png
먼저 내가 같이 할 것입니다 생각 클래스에는 serverid, servername이라는 세 가지 속성과 CostData라는 클래스 목록이 있습니다. CostData는 해당 월의 연간 월 및 비용 합계를 저장합니다.
내가 좋아하는, 한 달에 각 서버에 대해 나에게 총을 제공하는 쿼리를 얻을 LINQ로 처리했다 : 총 서버 1을, :, 2013 년 월 : 1, 서버 (460) 아직
나 자신 짧은 찾기 몇 가지. 먼저 각 서버의 월간 합계를 한 곳에서 계산해야합니다. 예를 들어 CostData로 시도한 것과 마찬가지로 html로 각 서버를 반복하고 열로 표시 할 수 있습니다.
또한이 솔루션을 사용하여 아직 Image2에 대한 월간 총계를 표시하려는 CostDesc 열을 놓쳤습니다.
여기 내 클래스는 다음과 같습니다
public class Region
{
public List<Server> Servers { get; set; }
}
public class Server
{
public string ServerID { get; set; }
public string ServerName { get; set; }
public List<CostData> MonthlyCosts { get; set; }
}
public class CostData
{
public string Date { get; set; }
public double Sum { get; set; }
}
이것은 내가 내 개체를 건물입니다 방법은 다음과 같습니다
Region r = new Region();
r.servers = new List<Server>();
foreach (var row in linqQueryResult)
{
Server s = new Server();
s.ServerID = row.ServerID;
s.ServerName = row.ServerName;
s.MonthlyCosts = new List<CostData>();
CostData cd = new CostData();
cd.Date = row.Year.ToString() + "-" + row.Month.ToString();
cd.Sum = row.ServerSum;
s.MonthlyCosts.Add(cd);
r.Servers.Add(s);
}
return View(r);
당신은 어떤 포인터이나 제안 사항이 있습니까? 나는 더 많은 경험을 가진 누군가가 한 번 봐서 내게 조언을 해줄 수 있기를 바랄 뿐이다. 비록 당신이 그것을 원한다면 나는 괜찮을 지 모르지만, 나는 전체적인 해결책을 요구하지 않는다.
좋은 것이 없는지 궁금하다. 방법은 내가 linq를 사용하여 원하는 데이터를 얻을 수 있습니다. 이 catch는 image1과 같은 데이터 만 제공하는 저장 프로 시저에만 액세스 할 수 있다는 것입니다. 데이터를 사용한 모든 조작은 C#으로 로컬에서 수행해야합니다.하지만 그렇게 나쁜 것은 아닙니다.
날짜에'string' 대신에'DateTime'을 사용하거나 적어도 Month와 Year에 대해'int' 필드를 분리하는 것이 더 쉬울 것입니다. 그럴 수 있니? 또한 서버 당 하나의 'CostData'만 추가하는 것 같습니다 ... –
날짜를 DateTime으로 만드는 것은 문제가되지 않습니다. 각 서버의 모든 월별 통계를 한 곳으로 가져 오는 것은 제가 문제가있는 것 중 하나입니다. 나는 어떻게 든 해시 테이블이나 사전을 사용하여 어떻게 든 그들을 함께 구축해야한다. –
클래스/인스턴스화 구문을 약간 재구성해도 되겠습니까? –