How to Add / Update record using GridView control (c#)

satinder singh / Updated : / 0 Comments

Overview: A Gridview is a control for displaying and manipulating data from different data sources. It shows data from a variety of data sources in a tabular format.

Instead of boundfiled, I prefer to use TemplateField coz of its simplicity. Here in this Article I am going to implement how to Add, Update, Delete selected a record from GirdView control.

Tested Sample code: Add new record from footer and Update the selected row

Default.aspx:

<asp:gridview allowpaging=”True” autogeneratecolumns=”False” cellpadding=”4″ forecolor=”#333333″ gridlines=”None” id=”gvstatus” onpageindexchanging=”gvstatus_PageIndexChanging” onrowcancelingedit=”gvstatus_RowCancelingEdit” onrowcommand=”gvstatus_RowCommand” onrowediting=”gvstatus_RowEditing” onrowupdating=”gvstatus_RowUpdating” onselectedindexchanged=”gvstatus_SelectedIndexChanged” runat=”server” showfooter=”True” width=”600px”>
            <columns>
 <asp:templatefield headerstyle-horizontalalign=”Left” headertext=”SrNo “>
            <itemtemplate>
                    &lt;%# Container.DataItemIndex + 1 %&gt;
                </itemtemplate>
 </asp:templatefield>

 <asp:templatefield headertext=”ID” visible=”false”>
      <itemtemplate>
      <asp:label columnname_id=”” id=”lblid” runat=”server” text=”&lt;%# Bind(“>”&gt; </asp:label>
     </itemtemplate>
</asp:templatefield>
<asp:templatefield headertext=”EmpName”>
      <itemtemplate>
        <asp:label columnname_empname=”” id=”lblEmpName” runat=”server” text=”&lt;%# Bind(“>”&gt;</asp:label>
       </itemtemplate>
       <edititemtemplate>
           <asp:textbox id=”txtEmpName” runat=”server” text=”&lt;%# Bind(&quot;columnname_EmpName&quot;) %&gt;”></asp:textbox>
        </edititemtemplate>
        <footertemplate>
              <asp:textbox id=”txtfEmpName” runat=”server”></asp:textbox>
        </footertemplate>
</asp:templatefield>
 <asp:templatefield headertext=”empSalary”>
        <itemtemplate>
           <asp:label id=”lblempSalary” runat=”server” text=”&lt;%# Bind(&quot;columnname_EmpSalary&quot;) %&gt;”></asp:label>
        </itemtemplate>
        <edititemtemplate>
             <asp:textbox id=”txtempSalary” runat=”server” text=”&lt;%# Bind(&quot;columnname_EmpSalary&quot;) %&gt;”></asp:textbox>
         </edititemtemplate>
         <footertemplate>
            <asp:textbox id=”txtfempSalary” runat=”server”></asp:textbox>
         </footertemplate>
</asp:templatefield>
 <asp:templatefield itemstyle-width=”190px” showheader=”False”>
         <itemtemplate>
             <asp:button causesvalidation=”False” commandname=”Edit” id=”btnedit” runat=”server” text=”Edit”></asp:button>
          </itemtemplate>
          <edititemtemplate>
               <asp:button causesvalidation=”True” commandname=”Update” id=”btnupdate” runat=”server” text=”Update”></asp:button>
                        &nbsp;<asp:button causesvalidation=”False” commandname=”Cancel” id=”btncancel” runat=”server” text=”Cancel”></asp:button>
         </edititemtemplate>
        <footertemplate>
            <asp:button commandname=”Add” id=”btnadd” runat=”server” text=”Add”>
        </asp:button></footertemplate>
 </asp:templatefield>
            </columns>
            <pagerstyle backcolor=”#A86E07″ forecolor=”White” horizontalalign=”Center”>
            <selectedrowstyle backcolor=”#E2DED6″ font-bold=”True” forecolor=”#333333″>
          <headerstyle backcolor=”#A86E07″ font-bold=”True” forecolor=”White”>
        <editrowstyle backcolor=”#d9d9d9″>
    <alternatingrowstyle backcolor=”White” forecolor=”#A86E07″>
 </alternatingrowstyle></editrowstyle></headerstyle></selectedrowstyle>
</pagerstyle>
</asp:gridview>

CodeBehind:

protected void Page_Load(object sender, EventArgs e)
    {
       if (!Page.IsPostBack)
       {
         gvBind(); //Bind gridview
       }
     }

 

public void gvBind()
{   
 SqlDataAdapter dap = new SqlDataAdapter("select id, empName,empSalary from myTable", conn);
  DataSet ds = new DataSet();
  dap.Fill(ds);
  gvstatus.DataSource = ds.Tables[0];
  gvstatus.DataBind();
}

Update the select row from Gridview

protected void gvstatus_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        lblmsg.Text = "";
        try
        {
            GridViewRow row = (GridViewRow)gvstatus.Rows[e.RowIndex];
            Label lblid = (Label)gvstatus.Rows[e.RowIndex].FindControl("lblid");
            TextBox txtname = (TextBox)gvstatus.Rows[e.RowIndex].FindControl("txtEmpName");
            TextBox txtSalary = (TextBox)gvstatus.Rows[e.RowIndex].FindControl("txtempSalary");
            string empName = txtname.Text;
            string empSalary = txtSalary.Text;
            string lblID=lblid.Text;
            int result = UpdateQuery(empName, empSalary,lblID);
            if (result > 0)
            {
                lblmsg.Text = "Record is updated successfully.";
            }
            gvstatus.EditIndex = -1;
            gvBind();
        }
        catch (Exception ae)
        {
            Response.Write(ae.Message);
        }

    }

 

Code to add new record to database form Gridview footer

protected void gvstatus_RowCommand(object sender, GridViewCommandEventArgs e)
    {
      if (e.CommandName == "Add")
        {
            string empName = ((TextBox)gvstatus.FooterRow.FindControl("txtfempName")).Text;
            string empSalry = ((TextBox)gvstatus.FooterRow.FindControl("txtfempSalary")).Text;
            int result = InsertNewRecord(empName, empSalry);
            if (result > 0)
            {
                lblmsg.Text = "Record is added successfully.";
            }
            gvstatus.EditIndex = -1;
            gvBind();

        }
    }

 

protected void gvstatus_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
	 gvstatus.EditIndex = -1;
 	 gvBind();
}

protected void gvstatus_RowEditing(object sender, GridViewEditEventArgs e)
{
	lblmsg.Text = "";
 	gvstatus.EditIndex = e.NewEditIndex;
 	gvBind();
}

public void UpdateQuery(string empName, string empSalary, string lblID)
{
 SqlCommand cmd = new SqlCommand("update myTable set empName='" + empName + "',empSalary='" + empSalary + "' where  id='" + lblID + "'", conn);
 conn.Open();
 int temp = cmd.ExecuteNonQuery();
 conn.Close();
 return temp;
}


public void InsertNewRecord(string empName, string empSalary)
{
 SqlCommand cmd = new SqlCommand("your insert query ", conn);
 conn.Open();
 int temp = cmd.ExecuteNonQuery();
 conn.Close();
 return temp;
}

Hope you enjoyed this tutorial. If you have any recommendations, please let us know what you think in the comment section below! See you again next time!


Post Comment


Your email address will not be published. Required fields are marked *