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
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
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
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 :
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";
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 Program setelah di Run dijalankan :
Komentar
Posting Komentar