Display Sum of two columns values in Gridview

In this blog we will know how to display Sum of two columns values in Gridview.

Scenario

Table structure

Create table test (id int, one int, two int)

I have 2 text box and one insert  button .on clicking to insert  button values of both the two text box got saved in database and I can display them on gridview . Now i want that there should be a 3rd column in Gridview which display the total of two numbers

Desired Output

id

one

two

Sum

1

1

2

3

2

1

1

2

3

1

4

5

4

5

5

10

5

10

10

20

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Sum._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label ID="Label1" runat="server" Text="Enter first Number" Width="150px"></asp:Label>
    <asp:TextBox ID="txtOne" runat="server" Width="150px"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
            ControlToValidate="txtOne" ErrorMessage="Enter first Number"></asp:RequiredFieldValidator>
        <br />
    <asp:Label ID="Label2" runat="server" Text="Enter second Number" Width="150px"></asp:Label>
    <asp:TextBox ID="txtTwo" runat="server" Width="150px"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
            ControlToValidate="txtTwo" ErrorMessage="Enter second Number"></asp:RequiredFieldValidator>
        <br />
    <asp:Button ID="btn_insert" runat="server" Text="Insert"
            onclick="btn_insert_Click" />
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    <asp:Label ID="lblmsg" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html> 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

namespace Sum
{
    public partial class _Default : System.Web.UI.Page
    {
        string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        SqlCommand com;
        SqlDataAdapter sqlda;
        DataSet ds;
        string str;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bindgrid();
            }
        }
        private void bindgrid()
        {
            SqlConnection con = new SqlConnection(connStr);
            con.Open();
            str = "select *,(one + two)as 'Sum'  from test";
            com = new SqlCommand(str, con);
            sqlda = new SqlDataAdapter(com);
            ds = new DataSet();
            sqlda.Fill(ds, "test");
            GridView1.DataMember = "test";
            GridView1.DataSource = ds;
            GridView1.DataBind();
            con.Close();
        }
        protected void btn_insert_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(connStr);
            com = new SqlCommand();
            com.Connection = con;
            com.CommandType = CommandType.Text;
            com.CommandText = "insert into test values(@one,@two)";
            com.Parameters.Clear();
            com.Parameters.AddWithValue("@one", txtOne.Text);
            com.Parameters.AddWithValue("@two", txtTwo.Text);
            if (con.State == ConnectionState.Closed)
                con.Open();
            com.ExecuteNonQuery();
            con.Close();
            lblmsg.Text = "Data entered successfully!!!";
            clear();
            bindgrid();
        }
        private void clear()
        {
            txtOne.Text = "";
            txtTwo.Text = "";
        }
    }
}