Introduction to CRUD

CRUD - Create, Read, Update And Delete
In this article, you will learn how to make a static application that performs Select, Add, Update & Delete operations.
Let's start.
Step 1 - Add New Project
Open Visual Studio 2017 => Click Add Project => Select Web Application Template => Fill all required details.
Static CRUD Operation In C#
Step 2

Select Web Application Template.
Static CRUD Operation In C#
Step 3
Add new item.

Right click in project solution => Add => New Item
Static CRUD Operation In C#
Step 4
Paste the below Html code under the body tag.
  1. <form id="form1" runat="server">
  2. <div style="display: flex; justify-content: center;">
  3. <table border="1">
  4. <tr>
  5. <td>Employee ID</td>
  6. <td>
  7. <asp:TextBox ID="txtID" runat="server"></asp:TextBox>
  8. </td>
  9. <td>
  10. <asp:RequiredFieldValidator ID="rfEmpId" runat="server" ControlToValidate="txtID" ErrorMessage="*" ForeColor="Red" ValidationGroup="grpemp"></asp:RequiredFieldValidator>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td>Employee Name</td>
  15. <td>
  16. <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
  17. </td>
  18. <td>
  19. <asp:RequiredFieldValidator ID="rfEmpName" runat="server" ControlToValidate="txtName" ErrorMessage="*" ForeColor="Red" ValidationGroup="grpemp"></asp:RequiredFieldValidator>
  20. </td>
  21. </tr>
  22. <tr>
  23. <td>Gender</td>
  24. <td>
  25. <asp:DropDownList ID="ddlgender" runat="server">
  26. <asp:ListItem>--Select--</asp:ListItem>
  27. <asp:ListItem>Male</asp:ListItem>
  28. <asp:ListItem>Female</asp:ListItem>
  29. </asp:DropDownList>
  30. </td>
  31. <td>
  32. <asp:RequiredFieldValidator ID="rfEmpgender" runat="server" InitialValue="--Select--" ControlToValidate="ddlgender" ErrorMessage="*" ForeColor="Red" ValidationGroup="grpemp"></asp:RequiredFieldValidator>
  33. </td>
  34. </tr>
  35. <tr style="text-align: center;">
  36. <td colspan="2">
  37. <asp:Button ID="btnAdd" runat="server" Text="ADD" Style="cursor: pointer;" OnClick="btnAdd_Click" ValidationGroup="grpemp" CausesValidation="true" />
  38. </td>
  39. </tr>
  40. </table>
  41. </div>
  42. <br />
  43. <br />
  44. <div style="display: flex; justify-content: center;">
  45. <asp:GridView ID="gvemployee" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" OnSelectedIndexChanged="gvemployee_SelectedIndexChanged" OnRowDeleting="gvemployee_RowDeleting" AutoGenerateColumns="false">
  46. <Columns>
  47. <asp:TemplateField HeaderText="SELECT">
  48. <itemtemplate>
  49. <asp:LinkButton ID="LnkSelect" runat="server" CommandName="Select">Select</asp:LinkButton>
  50. </itemtemplate>
  51. </asp:TemplateField>
  52. <asp:BoundField DataField="ID" HeaderText="EMPLOYEE ID" />
  53. <asp:BoundField DataField="Name" HeaderText="EMPLOYEE NAME" />
  54. <asp:BoundField DataField="Gender" HeaderText="GENDER" />
  55. <asp:TemplateField HeaderText="DELETE">
  56. <ItemTemplate>
  57. <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Delete" OnClientClick="return confirm('Are you sure to delete this employee?');">Delete</asp:LinkButton>
  58. </ItemTemplate>
  59. </asp:TemplateField>
  60. </Columns>
  61. <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
  62. <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
  63. <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
  64. <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
  65. <%--<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />--%>
  66. <SortedAscendingCellStyle BackColor="#FFF1D4" />
  67. <SortedAscendingHeaderStyle BackColor="#B95C30" />
  68. <SortedDescendingCellStyle BackColor="#F1E5CE" />
  69. <SortedDescendingHeaderStyle BackColor="#93451F" />
  70. </asp:GridView>
  71. </div>
  72. </form>
Step 5
Replace auto generated class code with the below code.
  1. public partial class CRUD : System.Web.UI.Page
  2. {
  3. DataTable dtEmp = new DataTable("Employee");
  4. protected void Page_Load(object sender, EventArgs e)
  5. {
  6. }
  7. protected void btnAdd_Click(object sender, EventArgs e)
  8. {
  9. if (Page.IsValid)
  10. {
  11. if (btnAdd.Text == "ADD")
  12. {
  13. if (gvemployee.Rows.Count == 0)
  14. {
  15. dtEmp.Columns.Add("ID", typeof(String));
  16. dtEmp.Columns.Add("Name", typeof(String));
  17. dtEmp.Columns.Add("Gender", typeof(String));
  18. DataRow dr = dtEmp.NewRow();
  19. dr["ID"] = txtID.Text;
  20. dr["Name"] = txtName.Text;
  21. dr["Gender"] = ddlgender.SelectedValue;
  22. dtEmp.Rows.Add(dr);
  23. ViewState["EmployeeTable"] = dtEmp;
  24. gvemployee.DataSource = dtEmp;
  25. gvemployee.DataBind();
  26. }
  27. else
  28. {
  29. dtEmp = (DataTable)ViewState["EmployeeTable"];
  30. DataRow dr;
  31. dr = dtEmp.Select("ID='" + txtID.Text + "'").FirstOrDefault();
  32. if (dr != null)
  33. {
  34. ClientScript.RegisterStartupScript(this.GetType(), "employeealert", "alert('Employee ID already exist');", true);
  35. return;
  36. }
  37. dr = dtEmp.NewRow();
  38. dr["ID"] = txtID.Text;
  39. dr["Name"] = txtName.Text;
  40. dr["Gender"] = ddlgender.SelectedValue;
  41. dtEmp.Rows.Add(dr);
  42. ViewState["EmployeeTable"] = dtEmp;
  43. gvemployee.DataSource = dtEmp;
  44. gvemployee.DataBind();
  45. }
  46. }
  47. else
  48. {
  49. dtEmp = (DataTable)ViewState["EmployeeTable"];
  50. DataRow dr = dtEmp.Select("ID='" + txtID.Text + "'").FirstOrDefault();
  51. if (dr != null)
  52. {
  53. dr["Name"] = txtName.Text;
  54. dr["Gender"] = ddlgender.SelectedValue;
  55. }
  56. gvemployee.DataSource = dtEmp;
  57. gvemployee.DataBind();
  58. txtID.ReadOnly = false;
  59. btnAdd.Text = "ADD";
  60. }
  61. Clear();
  62. }
  63. }
  64. protected void gvemployee_SelectedIndexChanged(object sender, EventArgs e)
  65. {
  66. txtID.Text = gvemployee.SelectedRow.Cells[1].Text;
  67. txtName.Text = gvemployee.SelectedRow.Cells[2].Text;
  68. ddlgender.SelectedValue = gvemployee.SelectedRow.Cells[3].Text;
  69. txtID.ReadOnly = true;
  70. btnAdd.Text = "Update";
  71. }
  72. public void Clear()
  73. {
  74. txtID.Text = "";
  75. txtName.Text = "";
  76. ddlgender.SelectedIndex = 0;
  77. }
  78. protected void gvemployee_RowDeleting(object sender, GridViewDeleteEventArgs e)
  79. {
  80. dtEmp = (DataTable)ViewState["EmployeeTable"];
  81. dtEmp.Rows.RemoveAt(e.RowIndex);
  82. gvemployee.DataSource = dtEmp;
  83. gvemployee.DataBind();
  84. }
  85. }
Step 5
Run application.
Static CRUD Operation In C#
Fill in all fields and click on ADD.
Static CRUD Operation In C#
Add more data
Static CRUD Operation In C#
Edit any row data by selecting and then press update button.
I am going to Edit EMP2 data from name Atul to Atul Pethe
Static CRUD Operation In C#
Now the name is changed from Atul to Atul Pethe
Static CRUD Operation In C#
Delete any row data by deleting Link Button,
I am going to delete EMP3 data.
Static CRUD Operation In C#
Now EMP3 data is deleted.
Static CRUD Operation In C#
I hope this helps.
Thank you.