In this blog we will know how to insert,
edit, update and delete using a form view control without using sqldatasource.
Here we can display the values of a single record from the database using
templates. Paging facilities are also provided in this control.
Default.aspx code
 
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default.aspx.cs"
Inherits="_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>
    
    </div>
    <asp:FormView ID="EmployeeFormView"
               
                DataKeyNames="EmployeeID"     
                Gridlines="Both" 
AllowPaging="true"
                
                RunAt="server" onitemdeleting="EmployeeFormView_ItemDeleting" 
        onpageindexchanging="EmployeeFormView_PageIndexChanging" 
        onitemupdating="EmployeeFormView_ItemUpdating" 
        oniteminserted="EmployeeFormView_ItemInserted" 
        oniteminserting="EmployeeFormView_ItemInserting" 
        onitemupdated="EmployeeFormView_ItemUpdated"
        onmodechanging="EmployeeFormView_ModeChanging" BackColor="#FFFF66"
        BorderColor="#FF8080">
 
                <HeaderStyle backcolor="Navy"
                  forecolor="#999966"/>
 
                <RowStyle backcolor="White"
ForeColor="#CC3300"/>         
 
                <EditRowStyle backcolor="#66FF99" ForeColor="#FF9966"/>
 
                <ItemTemplate>
                  <table>
                    <tr><td align="right"><b>Employee ID:</b></td><td><%# Eval("EmployeeID")
%></td></tr>
                    <tr><td align="right"><b>First Name:</b></td> <td><%# Eval("FirstName") %></td></tr>
                    <tr><td align="right"><b>Last Name:</b></td>  <td><%# Eval("LastName")
%></td></tr>
                    <tr><td align="right"><b>Address:</b></td>  <td><%# Eval("Address")%></td></tr>
                    <tr><td align="right"><b>Designation:</b></td>  <td><%# Eval("Designation")%></td></tr>
                    <tr>
                      <td colspan="2">
                        <asp:LinkButton ID="EditButton"
                                        Text="Edit"
                                        CommandName="Edit"
                                        RunAt="server"/>
                           
                        <asp:LinkButton ID="NewButton"
                                        Text="New"
                                        CommandName="New"
                                        RunAt="server"/>
                           
                        <asp:LinkButton ID="DeleteButton"
                                        Text="Delete"
                                        CommandName="Delete"
                                        RunAt="server"/>
                      </td>
                    </tr>
                  </table>                 
                </ItemTemplate>
 
                <EditItemTemplate>
                  <table>
                    <tr><td align="right"><b>Employee ID:</b></td>
                        <td><asp:TextBox ID="txtEmployeeID2"
                                         Text='<%#
Bind("EmployeeID") %>' 
                                         RunAt="Server" /></td></tr>
                    
 
                    <tr><td align="right"><b>First Name:</b></td>
                        <td><asp:TextBox ID="txtFirstName2" 
                                         Text='<%#
Bind("FirstName") %>' 
                                         RunAt="Server" /></td></tr>
 
                    <tr><td align="right"><b>Last Name:</b></td>
                        <td><asp:TextBox ID="txtLastName2" 
                                         Text='<%#
Bind("LastName") %>' 
                                         RunAt="Server" /></td></tr>
                                         
                                         
                    <tr><td align="right"><b>Address:</b></td>
                        <td><asp:TextBox ID="txtAddress2" 
                                         Text='<%#
Bind("Address") %>' 
                                         RunAt="Server" /></td></tr>
                                         
                    <tr><td align="right"><b>Designation:</b></td>
                        <td><asp:TextBox ID="txtDesignation2" 
                                         Text='<%#
Bind("Designation") %>' 
                                         RunAt="Server" /></td></tr>                                          
                                         
                                         
                    <tr>
                      <td colspan="2">
                        <asp:LinkButton ID="UpdateButton"
                                        Text="Update"
                                        CommandName="Update"
                                        RunAt="server"/>
                           
                        <asp:LinkButton ID="CancelUpdateButton"
                                        Text="Cancel"
                                        CommandName="Cancel"
                                        RunAt="server"/>
                      </td>
                    </tr>
                  </table>                 
                </EditItemTemplate>
 
                <InsertItemTemplate>
                  <table>
                  <tr><td align="right"><b>Employee ID:</b></td>
                        <td><asp:TextBox ID="txtEmployeeID1" 
                                         Text='<%#
Bind("EmployeeID") %>' 
                                         RunAt="Server" /></td></tr>
                  
                  
                    <tr><td align="right"><b>First Name:</b></td>
                        <td><asp:TextBox ID="txtFirstName1" 
                                         Text='<%#
Bind("FirstName") %>' 
                                         RunAt="Server" /></td></tr>
 
                    <tr><td align="right"><b>Last Name:</b></td>
                        <td><asp:TextBox ID="txtLastName1" 
                                         Text='<%#
Bind("LastName") %>' 
                                         RunAt="Server" /></td></tr>
                                         
                    <tr><td align="right"><b>Address:</b></td>
                        <td><asp:TextBox ID="txtAddress1" 
                                         Text='<%#
Bind("Address") %>' 
                                         RunAt="Server" /></td></tr>
                                         
                    <tr><td align="right"><b>Designation:</b></td>
                        <td><asp:TextBox ID="txtDesignation1"
                                         Text='<%#
Bind("Designation") %>' 
                                         RunAt="Server" /></td></tr>                                          
 
                    <tr>
                      <td colspan="2">
                        <asp:LinkButton ID="InsertButton"
                                        Text="Insert"
                                        CommandName="Insert"
                                        RunAt="server"/>
                           
                        <asp:LinkButton ID="CancelInsertButton"
                                        Text="Cancel"
                                        CommandName="Cancel"
                                        RunAt="server"/>
                      </td>
                    </tr>
                  </table>                 
                </InsertItemTemplate>
 
              </asp:FormView>
 
    </form>
</body>
</html>
 
Default.aspx.cs code
 
using System;
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;
 
public partial
class _Default
: System.Web.UI.Page 
{
    string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    SqlDataAdapter sqlda = new SqlDataAdapter();
    SqlCommand com = new SqlCommand();
    DataTable dt;
    protected void Page_Load(object
sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindgrid();
        }
    }
    private void bindgrid()
    {
        SqlConnection conn = new SqlConnection(connStr);
        dt = new DataTable();
        com.Connection = conn;
        com.CommandText = "SELECT
* FROM Employees";
        sqlda = new SqlDataAdapter(com);
        sqlda.Fill(dt);
        EmployeeFormView.DataSource = dt;
        EmployeeFormView.DataBind();
        
    }
    protected void EmployeeFormView_PageIndexChanging(object sender, FormViewPageEventArgs
e)
    {
        EmployeeFormView.PageIndex = e.NewPageIndex;
        bindgrid();
    }
    protected void EmployeeFormView_ItemDeleting(object sender, FormViewDeleteEventArgs
e)
    {
        DataKey key =
EmployeeFormView.DataKey;
        SqlConnection conn = new SqlConnection(connStr);
        com.Connection = conn;
        com.CommandText = "DELETE
FROM Employees WHERE EmployeeID='" + key.Value.ToString() + "'";
        conn.Open();
        com.ExecuteNonQuery();
        conn.Close();
        Response.Write( "Record
deleted successfully");
        bindgrid();
    }
    protected void EmployeeFormView_ItemUpdating(object sender, FormViewUpdateEventArgs
e)
    {
 
        DataKey key =
EmployeeFormView.DataKey;
        TextBox txtFirstName = (TextBox)EmployeeFormView.FindControl("txtFirstName2");
        TextBox txtLastName = (TextBox)EmployeeFormView.FindControl("txtLastName2");
        TextBox txtAddress = (TextBox)EmployeeFormView.FindControl("txtAddress2");
        TextBox txtDesignation =
(TextBox)EmployeeFormView.FindControl("txtDesignation2");
 
        SqlConnection conn = new SqlConnection(connStr);
        com.Connection = conn;
        com.CommandText = "UPDATE
Employees SET FirstName ='" + txtFirstName.Text + "',LastName ='" + txtLastName.Text + "',Address ='" + txtAddress.Text + "',Designation ='" + txtDesignation.Text
+ "'  
WHERE EmployeeID='" + key.Value.ToString() + "'";
        conn.Open();
        com.ExecuteNonQuery();
        Response.Write("Record
updated successfully");
        bindgrid();
        conn.Close();
    }
    protected void EmployeeFormView_ModeChanging(object sender, FormViewModeEventArgs
e)
    {
        EmployeeFormView.ChangeMode(e.NewMode);
        bindgrid();
        if (e.NewMode ==  FormViewMode.Edit)
        {
            EmployeeFormView.AllowPaging = false;
        }
        else
        {
            EmployeeFormView.AllowPaging = true;
        }
    }
    protected void EmployeeFormView_ItemInserted(object sender, FormViewInsertedEventArgs
e)
    {
        EmployeeFormView.ChangeMode(FormViewMode.ReadOnly);
    }
    protected void EmployeeFormView_ItemUpdated(object sender, FormViewUpdatedEventArgs
e)
    {
        EmployeeFormView.ChangeMode(FormViewMode.ReadOnly);
    }
    protected void EmployeeFormView_ItemInserting(object sender, FormViewInsertEventArgs
e)
    {
 
        TextBox txtEmployeeID =
(TextBox)EmployeeFormView.FindControl("txtEmployeeID1");
        TextBox txtFirstName = (TextBox)EmployeeFormView.FindControl("txtFirstName1");
        TextBox txtLastName = (TextBox)EmployeeFormView.FindControl("txtLastName1");
        TextBox txtAddress = (TextBox)EmployeeFormView.FindControl("txtAddress1");
        TextBox txtDesignation =
(TextBox)EmployeeFormView.FindControl("txtDesignation1");
 
        SqlConnection conn = new SqlConnection(connStr);
        com.Connection = conn;
        com.CommandText = "INSERT
INTO Employees Values('" + txtEmployeeID.Text + "','" + txtFirstName.Text + "', '" + txtLastName.Text + "', '" + txtAddress.Text + "', '" + txtDesignation.Text + "')";
        conn.Open();
        com.ExecuteNonQuery();
        Response.Write("Record
inserted successfully");
        bindgrid();
        conn.Close();
    }
}