2016-11-09 1 views
1

첫 번째 테이블에있는 그물 C#을 창 형태 :asp에서 두 colomn 값을 빼는 방법. 다른 테이블

표가 Fee_Paid

S.No RollNo  Amount 
1  14ERDME047 20000 
2  14ERDME047 30000 
3  14ERDME047 20000 
4  15ERLME006 25000 
5  15ERLME006 5000 
6  16ERLCE025 25000 

두 번째 표

표 Fee_Decide

S.No RollNo  Amount 
1 14ERDME047 70000 
2 15ERLME006 50000 
3 16ERLCE025 40000 

내가 같은 결과를 원하는 이하.

S.No RollNo  Due_Amount 
1 14ERDME047 0 
2 15ERLME006 20000 
3 16ERLCE025 15000 

여기서 첫 번째 테이블 항목의 추가는 두 번째 테이블과 비교되어 제거됩니다.

답변

0

아래를 시도해보십시오.

버튼을 클릭하면 두 테이블의 분산이 계산됩니다.

ASPX.cs

//When the button clicks this will calculate the variance of two tables 
    protected void LoadData(object sender,EventArgs e) 
    { 
     DataTable feePaid = new DataTable(); 
     SetColumns(feePaid); 

     DataTable feeDecide = new DataTable(); 
     SetColumns(feeDecide); 

     int feePaidRowCount = Fee_Paid.Rows.Count; 
     int count = 0; 
     int decideRowCount = Fee_Decide.Rows.Count; 


     //Assign ASP.Net table data to Data Table 
     for (int i = 1; i < feePaidRowCount; i++) 
     { 
      feePaid.Rows.Add(Fee_Paid.Rows[i].Cells[0].Text, Fee_Paid.Rows[i].Cells[1].Text, Fee_Paid.Rows[i].Cells[2].Text); 
     } 


     //Assign ASP.Net table data to Data Table 
     for (int i = 1; i < decideRowCount; i++) 
     { 
      feeDecide.Rows.Add(Fee_Decide.Rows[i].Cells[0].Text, Fee_Decide.Rows[i].Cells[1].Text, Fee_Decide.Rows[i].Cells[2].Text); 
     } 


     foreach (DataRow one in feeDecide.Rows) 
     { 
      var rollNumber = one.Field<string>("RollNo"); 
      var decideAmount = Convert.ToInt32(one.Field<object>("Amount")); 

      //Get the sum for a given roll number 
      int paidAmount = feePaid.AsEnumerable().Where(a => a.Field<string>("RollNo").Equals(rollNumber)).Sum(c => c.Field<int>("Amount")); 
      count++; 

      if (paidAmount != 0) 
      { 
       var resultedAmount = decideAmount - paidAmount; 
       TableRow r = new TableRow(); 
       TableCell numberCell = new TableCell(); 
       numberCell.Text = (count).ToString(); 
       TableCell rollCell = new TableCell(); 
       rollCell.Text = rollNumber; 
       TableCell amountCell = new TableCell(); 
       amountCell.Text = resultedAmount.ToString(); 
       r.Cells.Add(numberCell); 
       r.Cells.Add(rollCell); 
       r.Cells.Add(amountCell); 
       Result.Rows.Add(r); //Add the resultant to the result table 
      } 
     } 
    } 

    private static void SetColumns(DataTable tableName) 
    { 
     tableName.Columns.Add("S.No", typeof(int)); 
     tableName.Columns.Add("RollNo", typeof(string)); 
     tableName.Columns.Add("Amount", typeof(int)); 
    } 

ASPX

<asp:Table ID="Fee_Paid" runat="server"> 

    <asp:TableHeaderRow> 
     <asp:TableHeaderCell> 
      S.No 
     </asp:TableHeaderCell> 
      <asp:TableHeaderCell> 
      RollNo 
     </asp:TableHeaderCell> 
     <asp:TableHeaderCell> 
      Amount 
     </asp:TableHeaderCell> 
    </asp:TableHeaderRow> 
    <asp:TableRow> 
     <asp:TableCell> 
      1 
     </asp:TableCell> 
     <asp:TableCell> 
      14ERDME047 
     </asp:TableCell> 
     <asp:TableCell> 
      20000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      2 
     </asp:TableCell> 
     <asp:TableCell> 
      14ERDME047 
     </asp:TableCell> 
     <asp:TableCell> 
      30000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      3 
     </asp:TableCell> 
     <asp:TableCell> 
      14ERDME047 
     </asp:TableCell> 
     <asp:TableCell> 
      20000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      4 
     </asp:TableCell> 
     <asp:TableCell> 
      15ERLME006 
     </asp:TableCell> 
     <asp:TableCell> 
      25000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      5 
     </asp:TableCell> 
     <asp:TableCell> 
      15ERLME006 
     </asp:TableCell> 
     <asp:TableCell> 
      5000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      6 
     </asp:TableCell> 
     <asp:TableCell> 
      16ERLCE025 
     </asp:TableCell> 
     <asp:TableCell> 
      25000 
     </asp:TableCell> 
    </asp:TableRow> 
</asp:Table> 

<asp:Table ID="Fee_Decide" runat="server"> 
       <asp:TableHeaderRow> 
     <asp:TableHeaderCell> 
      S.No 
     </asp:TableHeaderCell> 
      <asp:TableHeaderCell> 
      RollNo 
     </asp:TableHeaderCell> 
     <asp:TableHeaderCell> 
      Amount 
     </asp:TableHeaderCell> 
    </asp:TableHeaderRow> 
    <asp:TableRow> 
     <asp:TableCell> 
      1 
     </asp:TableCell> 
     <asp:TableCell> 
      14ERDME047 
     </asp:TableCell> 
     <asp:TableCell> 
      70000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      2 
     </asp:TableCell> 
     <asp:TableCell> 
      15ERLME006 
     </asp:TableCell> 
     <asp:TableCell> 
      50000 
     </asp:TableCell> 
    </asp:TableRow> 

       <asp:TableRow> 
     <asp:TableCell> 
      3 
     </asp:TableCell> 
     <asp:TableCell> 
      16ERLCE025 
     </asp:TableCell> 
     <asp:TableCell> 
      40000 
     </asp:TableCell> 
    </asp:TableRow> 



</asp:Table> 
<asp:Table ID="Result" runat="server"> 

          <asp:TableHeaderRow> 
     <asp:TableHeaderCell> 
      S.No 
     </asp:TableHeaderCell> 
      <asp:TableHeaderCell> 
      RollNo 
     </asp:TableHeaderCell> 
     <asp:TableHeaderCell> 
      Amount 
     </asp:TableHeaderCell> 
    </asp:TableHeaderRow> 
</asp:Table> 


<asp:Button ID="Button1" runat="server" Text="Calculate Variance" OnClick="LoadData" /> 
  • 그것은 동일한 롤 번호 Fee_Paid의 데이터 열을 얻고, "양"의 합을 계산한다.
  • 그런 다음 동일한 롤 번호에 대한 Fee_Decide의 "금액"값에서 합계를 차감하여 결과 테이블에 추가합니다.
관련 문제