首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从asp中减去两个颜色值。net C#窗口窗体,它们位于不同的表中

问如何从asp中减去两个颜色值。net C#窗口窗体,它们位于不同的表中
EN

Stack Overflow用户
提问于 2016-11-09 13:49:19
回答 1查看 276关注 0票数 1

第一表:

表Fee_Paid

代码语言:javascript
复制
S.No  RollNo     Amount
1     14ERDME047  20000
2     14ERDME047  30000
3     14ERDME047  20000
4     15ERLME006  25000
5     15ERLME006  5000
6     16ERLCE025  25000

第二表

表Fee_Decide

代码语言:javascript
复制
S.No  RollNo     Amount
1    14ERDME047  70000
2    15ERLME006  50000
3    16ERLCE025  40000

我想要的结果如下。

代码语言:javascript
复制
S.No  RollNo     Due_Amount
1    14ERDME047  0
2    15ERLME006  20000
3    16ERLCE025  15000

其中第一个表项的添加将与第二个表进行比较,并将被删除。

EN

回答 1

Stack Overflow用户

发布于 2016-11-09 17:32:05

试在下面;

当按钮单击时,将计算两个表的方差。

ASPX.cs

代码语言:javascript
复制
   //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

代码语言:javascript
复制
    <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的“金额”值中扣除同一卷号的总和,并将其添加到结果表中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40508585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档