2012-11-06 1 views
0

관계가있는 테이블 어댑터 (SettlementCurrentTableAdapter)가 있습니다. 부모 테이블은 (SettlementCurrent) 자식 테이블은 (Trips)입니다.테이블 아답터의 SUM 하위 열

각 행 (tripLoadedMiles)을 (Trips) 개로 합하고 레이블 (labelWelcomeSetTotalMiles)에 합계를 표시해야합니다.

나는이 tableadapter를 다른 레이블을 표시하는 데 사용하므로 SQL에서는이 작업을 수행하고 싶습니다.

누군가 나를 알아낼 수 있습니까? 저는 C#에 익숙하지 않고 Visual C#을 사용합니다.

 this.settlementCurrentTableAdapter.Fill(this.myLeaseDataSet.SettlementCurrent); 
     MyLeaseDataSet.SettlementCurrentRow settlementCurrent; 
     settlementCurrent = myLeaseDataSet.SettlementCurrent.Last(); 

     var settlementCurrentID = settlementCurrent.setID; 

     this.tripsTableAdapter.FillByTripSetID(this.myLeaseDataSet.Trips, settlementCurrentID); 
     MyLeaseDataSet.TripsDataTable settlementTrips; 
     settlementTrips = myLeaseDataSet.Trips; 
     foreach (DataRow row in myLeaseDataSet.Trips.Rows) 
     { 

      NOT SURE ON THE CODE HERE 

     } 

답변

0

첫 번째 단계는 데이터 어댑터에서 원하는 데이터를 추출하는 것입니다. 질문에 표 모델이 없으므로 MSDN의 table adapter overview을보고 관련 링크 및 기사를 클릭하여이 개체의 기본 사용법을 확인하는 것이 가장 좋습니다. 테이블 구조를 게시하려면 이론적으로 코드를 제공 할 수 있지만 그렇게하기를 꺼립니다.이 객체로 작업해야합니다. 많은 경우 데이터베이스와 대화하는 방식이므로 어떻게 작동하는지 배우는 것이 중요합니다.

이 학습에서 목표는 테이블 어댑터에서 모든 마일 숫자를 얻는 방법을 찾는 것입니다. 일반적으로 한 번에 한 행 위로 이동하여 List/IEnumerable 또는 Array과 같이 더 많은 C# 관용 데이터 구조에 추가 할 값을 선택하면됩니다.

이러한 구조 중 하나에서 필요한 데이터를 얻은 후에는 LINQ를 사용하여 모든 데이터의 합계를 얻을 수 있습니다.

var totalMiles = tripLoadedMiles.Sum(); 

또는 이것이의 List 인 경우 (해야 할만큼 정교한 : (이 intsArray 같은 경우) 당신이 꺼내 정도에 따라, 하나의 호출처럼 간단 할 수있다 모두 int의 저장 모두 SettlementCurrentIdMiles을 가지고 사용자 정의 개체) : 당신이 일을 사용하고있는 방법으로

var totalMiles = tripLoadedMiles.Select(x => x.SettlementCurrentId == someRandomRequiredSettlement).Sum(y => y.Miles); 

, 이것은 당신이이 상황에서 총보고있는 방법이다.

var total = 0; 
    foreach (DataRow row in myLeaseDataSet.Trips.Rows) 
    { 

     total += int.Parse(row["tripTotalMiles"].ToString()); 
    } 
    // Use the total 
+0

코드가 추가되었습니다. 그러나 나는 완전히 혼란스럽고 메신저 확실히 그것에 대해 모든 잘못 가고있다. 나는 msdn을 통해 독서를하고 있지만 나를 cunfuse하는 것 같다. – user1804465

+0

@ user1804465 데이터 어댑터에서 아무것도 얻지 못하고있다. 내가 거기에 넣은 코드는 당신이 작동 할 수있는 것이 없다면 절대 작동하지 않을 것입니다. 나는 당신의 기초적인 테이블 구조가 어떻게 생겼는지 알지 못하기 때문에 당신이 볼 수있는 몇 가지 더 많은 리소스로 나의 대답을 업데이트하고있다. * 당신은 스스로 이것을 알아 내야 만 할 것이다. * – tmesser

+0

아마 im on the 옳은 길. (SettlementCurrent) 테이블 어댑터를 채웠습니다. 그런 다음 (여행) 테이블 어댑터를 (setID)만큼 채 웁니다. 나는 (myLeaseDataSet.Trips.SOMETHING();)에서 무엇을 사용 하는지를 알 수가 없다. – user1804465