C# CRUD SQLSERVER

BOOK PROGRAM SAMPLE

C# WITH SQL SERVER

Bismillah
Pada tahap awal ini untuk membuat aplikasi C# with SQL Server kita membutuhkan beberapa toll diantara nya adalah : 
- Visual Studio 2022
- SQL Server Management 20 Link Download
kedua tool tersebut boleh didownload pada Link yang sudah Penulis Tuliskan di dalam beberapa postingan penulis sebelum nya.
Tampilan Awal Visual Studio 2022

Tampilan Awal SQL Server Management 20
Dalam Pembuatana Database yang kita gunakan dalam Crud#  kali ini boleh melalui Connect 2 tipe Authentification  di SQL Server Management 20 yaitu boleh melalui 
- Windows Authentification 
- SQL Server Authentification 
SQL Server Authentification 
Windows Authentification 
penulis menggunakan Connect kali dengan Windows Authentification  adapaun hasil connect suskses connect didalam  SQL Server Management 20 dengan tampilan sebagai berikut :
Dalam Program Book ini kita menggunakan Database dan beberapa tabel yang nantinya akan digunakan dan di koneksikan ke program Visual Studio 2022 serta digunakan dalam program Book. Untuk membuat Database yang kita gunakan dengan mengklik kanan folder database pada  SQL Server Management 20 seperti gambar dibawah ini dengan memilih New Database dengan Tampilan Sebagai berikut : 
New DataBase

Buat DataBase BookData

Dengan Menggunakan Query SQL  Lengkap Beserta Database dan Tabel yang kita buat sebagai berikut :
USE [master]
GO
CREATE DATABASE [BookData]
GO
------------------------------------------------------
CREATE TABLE [AUTHOR]
 (
 [AuthorId] [int] IDENTITY(1, 1) NOT NULL PRIMARY KEY,
 [AuthorName] [varchar](50) NOT NULL UNIQUE
 )
 GO
 CREATE TABLE [PUBLISHER]
 (
 [PublisherId] [int] IDENTITY(1, 1) NOT NULL PRIMARY KEY,
 [PublisherName] [varchar](50) NOT NULL UNIQUE
 )
 GO
 CREATE TABLE [CATEGORY]
 (
 [CategoryId] [int] IDENTITY(1, 1) NOT NULL PRIMARY KEY,
 [CategoryName] [varchar](50) NOT NULL UNIQUE
 )
 GO
 CREATE TABLE [BOOK]
 (
 [BookId] [int] IDENTITY(1, 1) NOT NULL PRIMARY KEY,
 [Title] [varchar](50) NOT NULL UNIQUE,
 [ISBN] [varchar](20) NOT NULL,
 [PublisherId] [int] NOT NULL FOREIGN KEY REFERENCES [PUBLISHER] ([PublisherId]),
 [AuthorId] [int] NOT NULL FOREIGN KEY REFERENCES [AUTHOR] ([AuthorId]),
 [CategoryId] [int] NOT NULL FOREIGN KEY REFERENCES [CATEGORY] ([CategoryId])
 )
 GO
-----------------------------------------------------------------------
SELECT
 BOOK.BookId,
 BOOK.Title,
 BOOK.ISBN,
 PUBLISHER.PublisherName,
 AUTHOR.AuthorName,
 CATEGORY.CategoryName
 FROM BOOK 
 INNER JOIN AUTHOR ON BOOK.AuthorId = AUTHOR.AuthorId
 INNER JOIN PUBLISHER ON BOOK.PublisherId = PUBLISHER.PublisherId
 INNER JOIN CATEGORY ON BOOK.CategoryId = CATEGORY.CategoryId
 GO
---------------------------------------------------------------------------------------------
Dalam Database BookData yang digunakan dan dikoneksikan pada program book di program C# Book Visual Studio 2022
menggunakan Stored Procedure CreateBook pada Database BookData dengan Query sebagai berikut : 
CREATE PROCEDURE CreateBook 
 @Title varchar(50), 
 @Isbn varchar(20),
 @PublisherName varchar(50),
 @AuthorName varchar(50), 
 @CategoryName varchar(50) AS
 FROM BOOK 
 INNER JOIN AUTHOR ON BOOK.AuthorId = AUTHOR.AuthorId
 INNER JOIN PUBLISHER ON BOOK.PublisherId = PUBLISHER.PublisherId
 INNER JOIN CATEGORY ON BOOK.CategoryId = CATEGORY.CategoryId
 GO
----------------------------------------------------
Semua sintak atau tulisan query diatas bisa di tuliskan di database MSQLSERVER langkah - langkah seperti gambar dibawah ini dengan mengklik kanan database yang sudah dibuat dengan nama BookData.
penulusian qery seperti gambar dibawah ini 

Tahap Selanjutnya adalah proses pembuatan program Book di Visual Studio 2022 sebagai berikut:
double Klik menu Create a new project .
Lalu pilih dan  klik Next  Windows From App (.Net Framework) seperti gambar berikut :
Lalu ketikkan Nama program yang kita buat yaitu BookSystem  lalu klik Create Seperti Tampilan Berikut : 
Dalam program Crud C# BookSystem Windows From App (.Net Framework) menggunakan 3 Form dan 1 modul Class yaitu :
- MainForm.cs
- NewBookForm.cs
- Edit BookForm.cs
- dan Modul Class Book.cs
Tampilan 3 Form  yang digunakan sebagai berikut :
MainForm.cs

NewBookForm.cs

Edit BookForm.cs
Adapun Source Code program  serta tool yang digunakan pada tiap program seperti Command Button,Text dan tabel baik name,caption tipa form bisa di lihat di source code pada tiap Form.
Source Code sebagai berikut:

-Source Code MainForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using BookSystem;
namespace BookSystem
{
    public partial class MainForm : Form
    {
        private int bookId;

        public MainForm()
        {
            InitializeComponent();
            FillGridView();
            AdjustGridView();
        }
        void AdjustGridView()
        {
            datagridviewBooks.Columns[0].HeaderText = "BookId";
            datagridviewBooks.Columns[1].HeaderText = "Title";
            datagridviewBooks.Columns[2].HeaderText = "ISBN";
            datagridviewBooks.Columns[3].HeaderText = "Publisher";
            datagridviewBooks.Columns[4].HeaderText = "Author";
            datagridviewBooks.Columns[5].HeaderText = "Category";
            datagridviewBooks.Columns[0].Width = 50;
            datagridviewBooks.Columns[1].Width = 200;
            datagridviewBooks.Columns[2].Width = 90;
            datagridviewBooks.Columns[3].Width = 120;
            datagridviewBooks.Columns[4].Width = 120;
            datagridviewBooks.Columns[5].Width = 120;
        }
        private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
        void FillGridView()
        {
            List<Book> bookList = new List<Book>();
            Book book = new Book();
            bookList = book.GetBooks();
            datagridviewBooks.DataSource = bookList;
        }
        private void btnNew_Click(object sender, EventArgs e)
        {
            NewBookForm formNewBook = new NewBookForm();
            formNewBook.ShowDialog();
        }
        private void datagridviewBooks_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            EditBook();
        }
        void EditBook()
        {
            int bookId;
            bookId = (int)datagridviewBooks.CurrentRow.Cells[0].Value;
            EditBookForm formEditBook = new EditBookForm(bookId);
            formEditBook.ShowDialog();
        }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            DeleteBook();
        }
        void DeleteBook()
        {
            int bookId;
            bookId = (int)datagridviewBooks.CurrentRow.Cells[0].Value;
            string bookTitle = datagridviewBooks.CurrentRow.Cells[1].Value.ToString();
            string message = "Are you sure that you want to delete the book '" + bookTitle + "'?";
            DialogResult dr = MessageBox.Show(message, "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dr == DialogResult.Yes)
            {
                Book book = new Book();
                book.DeleteBook(bookId);
                FillGridView();
            }
        }
        private void MainForm_Activated(object sender, EventArgs e)
        {
            FillGridView();
        }
        private void btnEdit_Click(object sender, EventArgs e)
        {
            int bookId;
            bookId = (int)datagridviewBooks.CurrentRow.Cells[0].Value;
            EditBookForm formEditBook = new EditBookForm(bookId);
            formEditBook.ShowDialog();
        }
    }
}
------------------------------------------------------
-Source Code NewBookForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BookSystem
{
    public partial class NewBookForm : Form
    {
        public NewBookForm()
        {
            InitializeComponent();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            SaveBookData();
            GotoMainForm();
        }

        void SaveBookData()
        {
            Book book = new Book();
            book.Title = txtTitle.Text;
            book.Isbn = txtIsbn.Text;
            book.PublisherName = txtPublisher.Text;
            book.AuthorName = txtAuthor.Text;
            book.CategoryName = txtCategory.Text;
            book.CreateBook(book);
        }

        void GotoMainForm()
        {
            this.Close();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Hide();
        }
    }
}
---------------------------------------------------------
-Source Code Edit BookForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BookSystem
{
    public partial class EditBookForm : Form
    {
        int selectedBookId;
        private int bookId;

        public EditBookForm(int bookId)
        {
            InitializeComponent();
            selectedBookId = bookId;
            GetBookData();
            this.bookId = bookId;
        }

        private void btnOK_Click(object sender, EventArgs e)
        {        
            GotoMainForm();
            EditBookData();
        }

        void GetBookData()
        {
            Book book = new Book();
            book = book.GetBookData(selectedBookId);
            txtTitle.Text = book.Title;
            txtIsbn.Text = book.Isbn;
            txtPublisher.Text = book.PublisherName;
            txtAuthor.Text = book.AuthorName;
            txtCategory.Text = book.CategoryName;
        }

        void GotoMainForm()
        {
            this.Close();
        }

        void EditBookData()
        {
            Book book = new Book();
            book.BookId = selectedBookId;
            book.Title = txtTitle.Text;
            book.Isbn = txtIsbn.Text;
            book.PublisherName = txtPublisher.Text;
            book.AuthorName = txtAuthor.Text;
            book.CategoryName = txtCategory.Text;
            book.EditBook(book);
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Hide();
        }
    }
}
--------------------------------------------------------------
-Source Code Modul Class Book.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using Microsoft.Data.SqlClient;

namespace BookSystem
{

    internal class Book
    {
        public int BookId { get; set; }
        public string Title { get; set; }
        public string Isbn { get; set; }
        public string PublisherName { get; set; }
        public string AuthorName { get; set; }
        public string CategoryName { get; set; }


        string connectionString = "Data Source=LAPTOP-NM70SCK9;Initial Catalog=GetBookData;Integrated Security=True;TrustServerCertificate=True";
        public List<Book> GetBooks()
        {
            List<Book> bookList = new List<Book>();
            SqlConnection con = new SqlConnection(connectionString);
            string selectSQL = "select BookId, Title, Isbn, PublisherName, AuthorName, CategoryName from GetBookData";
            con.Open();
            SqlCommand cmd = new SqlCommand(selectSQL, con);
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr != null)
            {
                while (dr.Read())
                {
                    Book book = new Book();
                    book.BookId = Convert.ToInt32(dr["BookId"]);
                    book.Title = dr["Title"].ToString();
                    book.Isbn = dr["ISBN"].ToString();
                    book.PublisherName = dr["PublisherName"].ToString();
                    book.AuthorName = dr["AuthorName"].ToString();
                    book.CategoryName = dr["CategoryName"].ToString();
                    bookList.Add(book);
                }
            }
            return bookList;
        }

        public void CreateBook(Book book)
            {
                SqlConnection con = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand("CreateBook", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Title", book.Title));
                cmd.Parameters.Add(new SqlParameter("@Isbn", book.Isbn));
                cmd.Parameters.Add(new SqlParameter("@PublisherName", book.PublisherName));
                cmd.Parameters.Add(new SqlParameter("@AuthorName", book.AuthorName));
                cmd.Parameters.Add(new SqlParameter("@CategoryName", book.CategoryName));
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }

        public Book GetBookData(int bookId)
        {
            SqlConnection con = new SqlConnection(connectionString);
            string selectSQL = "select BookId, Title, Isbn, PublisherName, AuthorName, CategoryName from GetBookData where               BookId = " + bookId;
            con.Open();
            SqlCommand cmd = new SqlCommand(selectSQL, con);
            SqlDataReader dr = cmd.ExecuteReader();
            Book book = new Book();
            if (dr != null)
            {
                while (dr.Read())
                {
                    book.BookId = Convert.ToInt32(dr["BookId"]);
                    book.Title = dr["Title"].ToString();
                    book.Isbn = dr["ISBN"].ToString();
                    book.PublisherName = dr["PublisherName"].ToString();
                    book.AuthorName = dr["AuthorName"].ToString();
                    book.CategoryName = dr["CategoryName"].ToString();
                }
            }
            return book;
        }
        public void EditBook(Book book)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("UpdateBook", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@BookId", book.BookId));
            cmd.Parameters.Add(new SqlParameter("@Title", book.Title));
            cmd.Parameters.Add(new SqlParameter("@Isbn", book.Isbn));
            cmd.Parameters.Add(new SqlParameter("@PublisherName", book.PublisherName));
            cmd.Parameters.Add(new SqlParameter("@AuthorName", book.AuthorName));
            cmd.Parameters.Add(new SqlParameter("@CategoryName", book.CategoryName));
            con.Open();
            cmd.ExecuteNonQuery();
        }

        public void DeleteBook(int bookId)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("DeleteBook", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@BookId"
            , bookId));
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }

    }
}
--------------------------------------------------------
Cara membuat Modul Class Book.cs seperti gambar berikut : 
Pada Visual Studio 2022 pilih menu project dan pilih add Class dan klik . akan muncul menu untuk memberikan nama Class yang akan dibuat seperti gambar berikut : 


Untuk mengconeksi kan program BookSystem Visual Studio 2022 ke SQL Server Management 20
dengan source code perintah seperti berikut : 

string connectionString = "Data Source=LAPTOP-NM70SCK9;Initial Catalog=GetBookData;Integrated Security=True;TrustServerCertificate=True";

dengan tampilan seperti berikut :  Klik menu Project dan pilih klik BookSystem Propertis.
 

Lalu tulis kan isi seperti gambar di bawah ini baik Name , Type ,Scope, Value
dengan hasil seperti Source Kode berikut :
string connectionString = "Data Source=LAPTOP-NM70SCK9;Initial Catalog=GetBookData;Integrated Security=True;TrustServerCertificate=True";

hasil Koneksi akhir Visual Studio 2022 ke SQL Server Management 20



Hasil Program setelah di Run dijalankan :
                             


Alhamdulillah Selamat Mencoba
Semoga  berkah dan bermanfaat 
Wassalam

Komentar

Postingan populer dari blog ini

Penjabaran Haluan

Radar Plotting

MANAJEMEN RISIKO K3