ADO.NET CRUD Operations in ASP.NET Web Forms

๐Ÿ“Œ Introduction

When we build a web application in C#, we need to connect our application with a database.

ADO.NET helps us connect, read, insert, update, and delete data from SQL Server.

In this article, we will learn:

โœ” What is ADO.NET
โœ” How to connect ASP.NET Web App with SQL Server
โœ” CRUD Operations (Create, Read, Update, Delete)
โœ” Step-by-step explanation
โœ” Beginner-friendly example

We will build a simple Student Management Web Application.

๐Ÿง  What is ADO.NET?

ADO.NET is a technology in .NET Framework used to connect applications with databases like:

  • SQL Server

  • Oracle

  • MySQL

It provides classes like:

  • SqlConnection

  • SqlCommand

  • SqlDataAdapter

  • SqlDataReader

๐Ÿ›  Step 1: Create Database and Table

Open SQL Server and run this query:

CREATE DATABASE StudentDB;

USE StudentDB;

CREATE TABLE Students
(
    Id INT PRIMARY KEY IDENTITY(1,1),
    Name NVARCHAR(100),
    Email NVARCHAR(100),
    City NVARCHAR(100)
);

๐Ÿ–ฅ Step 2: Create ASP.NET Web Application

  1. Open Visual Studio

  2. Click New Project

  3. Select ASP.NET Web Application (.NET Framework)

  4. Choose Web Forms

  5. Click Create

๐Ÿ”— Step 3: Add Connection String in Web.config

Open Web.config file and add:

<connectionStrings>
  <add name="dbcs" 
       connectionString="Data Source=YOUR_SERVER_NAME;Initial Catalog=StudentDB;Integrated Security=True" 
       providerName="System.Data.SqlClient"/>
</connectionStrings>

๐Ÿ‘‰ Replace YOUR_SERVER_NAME with your SQL Server name.

๐Ÿงพ Step 4: Design UI (Default.aspx)

Add this inside <form runat="server">:

Name:
<asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />

Email:
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox><br />

City:
<asp:TextBox ID="txtCity" runat="server"></asp:TextBox><br /><br />

<asp:Button ID="btnInsert" runat="server" Text="Insert" OnClick="btnInsert_Click" />
<asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_Click" />
<asp:Button ID="btnDelete" runat="server" Text="Delete" OnClick="btnDelete_Click" />

<br /><br />

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"></asp:GridView>

๐Ÿ’ป Step 5: Write ADO.NET Code (Default.aspx.cs)

๐Ÿ”น Import Namespaces

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

๐Ÿ“Œ Insert Operation

protected void btnInsert_Click(object sender, EventArgs e)
{
    string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;

    using (SqlConnection con = new SqlConnection(cs))
    {
        string query = "INSERT INTO Students(Name,Email,City) VALUES(@Name,@Email,@City)";
        SqlCommand cmd = new SqlCommand(query, con);

        cmd.Parameters.AddWithValue("@Name", txtName.Text);
        cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
        cmd.Parameters.AddWithValue("@City", txtCity.Text);

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }

    LoadData();
}

๐Ÿ”Ž Explanation

  • SqlConnection โ†’ Connects to database

  • SqlCommand โ†’ Executes SQL query

  • ExecuteNonQuery() โ†’ Used for Insert/Update/Delete

๐Ÿ“Œ Load Data (Read Operation)

public void LoadData()
{
    string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;

    using (SqlConnection con = new SqlConnection(cs))
    {
        string query = "SELECT * FROM Students";
        SqlDataAdapter da = new SqlDataAdapter(query, con);
        DataTable dt = new DataTable();

        da.Fill(dt);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}

Call this inside Page_Load:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        LoadData();
    }
}

๐Ÿ“Œ Update Operation

protected void btnUpdate_Click(object sender, EventArgs e)
{
    string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;

    using (SqlConnection con = new SqlConnection(cs))
    {
        string query = "UPDATE Students SET Email=@Email, City=@City WHERE Name=@Name";
        SqlCommand cmd = new SqlCommand(query, con);

        cmd.Parameters.AddWithValue("@Name", txtName.Text);
        cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
        cmd.Parameters.AddWithValue("@City", txtCity.Text);

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }

    LoadData();
}

๐Ÿ“Œ Delete Operation

protected void btnDelete_Click(object sender, EventArgs e)
{
    string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString;

    using (SqlConnection con = new SqlConnection(cs))
    {
        string query = "DELETE FROM Students WHERE Name=@Name";
        SqlCommand cmd = new SqlCommand(query, con);

        cmd.Parameters.AddWithValue("@Name", txtName.Text);

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }

    LoadData();
}

๐Ÿ–ผ Expected Output

When you run the application:

  • Enter student details

  • Click Insert

  • Data will display in GridView

  • You can Update and Delete

Simple working CRUD web application ๐ŸŽ‰

๐Ÿ”ฅ Why We Use Parameters?

We used:

cmd.Parameters.AddWithValue()

This prevents:

โŒ SQL Injection

โŒ Security issues

Always use parameters in real projects.

๐Ÿ Conclusion

In this article, we learned:

โœ” What is ADO.NET

โœ” How to connect ASP.NET Web Forms to SQL Server

โœ” How to perform CRUD operations

โœ” Basic explanation of each class

This is the foundation of database programming in ASP.NET.