아래를 시도해보십시오.
버튼을 클릭하면 두 테이블의 분산이 계산됩니다.
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의 "금액"값에서 합계를 차감하여 결과 테이블에 추가합니다.