Home > Microsoft > Contoh CRUD dalam ASP .Net C# (Web Form)

Contoh CRUD dalam ASP .Net C# (Web Form)

Sebelum memulai belajar fungsi CRUD (Create Read Update Delete) dengan menggunakan C# ASP .Net, terlebih dahulu mari buat databasenya terlebih dahulu. Tutorial ini menggunakan SQL Server expres untuk pembuatan databasenya.  Pertama silakan buat database dengan nama latihan, lalu buat tabelnya dengan script seperti berikut ini.

USE [latihan]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[peserta](
	[id_peserta] [int] IDENTITY(1,1) NOT NULL,
	[nama] [varchar](30) NULL,
	[alamat] [varchar](50) NULL,
	[no_telp] [varchar](13) NULL,
 CONSTRAINT [PK_peserta] PRIMARY KEY CLUSTERED 
(
	[id_peserta] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Setelah itu mulai membuat project baru di visual studio. ┬áSilakan pilih yang C# –> Web Form -> Asp.Net WebForm Application

Setelah itu, buat antarmukanya seperti berikut ini : (ubah default.aspx nya )

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="EkaLatih._Default" %>





    


    

PENGELOLAAN PESERTA

Form Peserta
Nama
Alamat
No Telp
Menampilkan Daftar Peserta
Delete EditS=

Lalu, masukkan kode behind nya dengan cara mengeklik kanan –> view code, masukkan script berikut ini :(ubah default.aspx.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace EkaLatih
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //Pertama-tama tampilkan daftar peserta dengan memanggil fungsi fillgvPeserta
            fillgvPeserta(); 
        }
        private DataTable getDataPeserta(int id_peserta)
        {
            try
            {
                string strKoneksi = @"Data Source=.\SQLEXPRESS;Initial Catalog=latihan;Integrated Security=True";
                SqlConnection koneksi = new SqlConnection(strKoneksi);
                koneksi.Open();
                SqlCommand command = new SqlCommand();
                command.Connection = koneksi;
                if (id_peserta == 0)
                { 
                command.CommandText = "select * from peserta";
                }else
                {
                    command.CommandText = "select * from peserta where id_peserta = @id";
                    command.Parameters.AddWithValue("@id", id_peserta);
                }
                SqlDataReader reader = null;
                reader = command.ExecuteReader();
                
                DataTable dt = new DataTable();
                dt.Load(reader);
                koneksi.Close();
                return dt;    
            }
            catch (Exception ex)
            {
                throw(ex);
            }
        }
        private bool deletePeserta(int id)
        {
            try
            {
                string strKoneksi = @"Data Source=.\SQLEXPRESS;Initial Catalog=latihan;Integrated Security=True";
                SqlConnection koneksi = new SqlConnection(strKoneksi);
                koneksi.Open();
                SqlCommand command = new SqlCommand();
                command.Connection = koneksi;
                command.CommandText = "delete from peserta where id_peserta = @id";
                command.Parameters.AddWithValue("@id", id);
                command.ExecuteNonQuery();
                koneksi.Close();
                return true;
            }
            catch (Exception)
            {
                
                return false;
            }
        }

        private bool insertPeserta(int id, string nama, string alamat, string telp)
        {
            try
            {
                //koneksi2 seperti ini sebenarnya bisa diringkas dan dimasukkan ke web.config, agar kalau dikemudian hari 
                //beda konfigurasinya bisa diubah cuma di web.config nya (tidak satu2)
                string strKoneksi = @"Data Source=.\SQLEXPRESS;Initial Catalog=latihan;Integrated Security=True";
                SqlConnection koneksi = new SqlConnection(strKoneksi);
                
                koneksi.Open();
                SqlCommand command = new SqlCommand();
                command.Connection = koneksi;
                //jika id nya 0 berarti kondisi fungsi ini digunakan untuk insert, maka query ke databasenya insert into bla bla bla
                
                if (id == 0) { 
                command.CommandText = "INSERT INTO [dbo].[peserta]  ([nama],[alamat],[no_telp])  VALUES (@nama, @alamat, @no_telp)";
                }
                else //jika tidak maka kondisi fungsi digunakan untuk update
                {
                    command.CommandText = "UPDATE peserta set nama = @nama, alamat = @alamat, no_telp = @no_telp where id_peserta = @id";
                    command.Parameters.AddWithValue("@id", id);
                }
                command.Parameters.AddWithValue("@nama", nama);
                command.Parameters.AddWithValue("@alamat", alamat);
                command.Parameters.AddWithValue("@no_telp", telp);
                command.ExecuteNonQuery();
                koneksi.Close();
                return true;
            }
            catch (Exception)
            {

                return false;
            }
        }
        private void fillgvPeserta()
        {
            try
            {
                //pertama-tama kita ambil data dari database dulu ya, terus ditampilkan ke grid view
                DataTable dt = this.getDataPeserta(0);

                //menampilkan ke gridview
                gvPeserta.DataSource = dt;
                gvPeserta.DataBind();
            }
            catch (Exception ex)
            {
                txtError.Text = ex.Message;
            }
        }

        protected void gvPeserta_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                //custom command
                //kita tadi sudah menyiapkan dua tombol dimana satu adalah tombol untuk update, dan yang satu lagi tombol delete
                //dua tombol tadi dibedakan dari commandNamenya, coba lihat lagi baris kode untuk membuat tombol hapus dan update
                //pasti ada properties commandName.
                string jenisCommand = e.CommandName;
                
                //ini digunakan jika tombol dengan commandName ubah diklik
                if (String.Compare(jenisCommand.ToUpper(), "UBAH", true) == 0)
                {
                    txtId.Value = e.CommandArgument.ToString();
                    //ambil detail datanya untuk ditaruh di form
                    DataTable dt = this.getDataPeserta(int.Parse(txtId.Value));
                    txtNama.Text = dt.Rows[0]["nama"].ToString();
                    txtAlamat.Text = dt.Rows[0]["alamat"].ToString();
                    txtTelp.Text = dt.Rows[0]["no_telp"].ToString();
                    //ubah nama tombolnya agar pengguna tidak bingung
                    btnSimpan.Text = "Ubah";
                }

                //ini digunakan jika tombol dengan commandName hapus diklik
                if (String.Compare(jenisCommand.ToUpper(), "HAPUS", true) == 0)
                {
                    int id = int.Parse(e.CommandArgument.ToString());
                    bool isSukses = deletePeserta(id);
                    if (isSukses == true)
                    {
                        txtError.Text = "Data Berhasil Dihapus";
                    }
                    else
                    {
                        txtError.Text = "Data Gagal Dihapus";
                    }
                }
                //terakhir refresh tampilan di gridview peserta
                fillgvPeserta();
            }
                
            catch (Exception ex)
            {
                
                txtError.Text = ex.Message;
            }
            
        }

        protected void btnSimpan_Click(object sender, EventArgs e)
        {
            try
            {
                string nama, alamat, noTelp, strid;
                int id =0;
                
                nama = txtNama.Text;
                alamat = txtAlamat.Text;
                noTelp = txtTelp.Text;
                //sampai disini buat sendiri validasinya ya
                strid = txtId.Value.Trim();

                //jika strid kosong berarti form dalam kondisi untuk menginsert, jika ada isinya maka dalam kondisi mengupdate
                if (strid.Length > 0)
                {
                    id = int.Parse(strid);
                }


                bool isSukses = this.insertPeserta(id, nama, alamat, noTelp);

                btnSimpan.Text = "Simpan";
                fillgvPeserta();
                if (isSukses == true)
                {
                    txtError.Text = "Sukses Menyimpan Data";
                    //bersihkan form
                    txtNama.Text = string.Empty;
                    txtAlamat.Text = string.Empty;
                    txtTelp.Text = string.Empty;
                    txtId.Value = string.Empty;

                } else
                {
                    txtError.Text = "Gagal Menyimpan Data";
                }
            }
            catch (Exception ex)
            {
                
                txtError.Text = ex.Message;
            }
        }

        protected void gvPeserta_RowEditing(object sender, GridViewEditEventArgs e)
        {

        }
    }
}

Oke, Penjelasannya ada di script ya hehe, kalau yang bingung unduh aja programnya dimari (sek belum sempet upload)

Leave a Reply

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