Fauzian Sebastian (Zian Tech)
Menu
  • Home
  • TKJ
    • Perakitan
    • Installasi
    • Konfigurasi
    • TroubleHosting
  • Rekayasa Perangkat Lunak
    • WEB Design
    • Software Aplication
  • Multimedia
    • Animation
    • Desain Graphic
  • Trending Topic
  • Tentang Saya

Sunday, 9 August 2015

Menggunakan Transactions di ADO.NET dengan C# dan VB.NET

By zianovel21:08:00Tutorial C#, Tutorial VB.Net No comments
Assalamualaikum agan semua, maaf karena sudah lumayan lama tidak posting :D, dikarenakan menyibukan diri :D, pada malam hari ini saya ingin memposting tutorial tentang Menggunakan Transactions di ADO.NET dengan C# dan VB.NET,

Biasanya ketika kita sedang membuat program dengan database ada situasi dimana ketika kita ingin membutuhkan lebih dari 1 perintah SQL, dimana ketika salah satu perintah SQL gagal di eksekusi maka tidak ada perintah SQL yang lainnya yang akan mengubah data pada database;

Sebagai contoh ketika ingin menyimpan data pada tabel transaksi dan detailtransaksi dengan perintah sebagai berikut
1. Insert data ke tabel transaksi
Insert transaksi (id_transaksi,tanggal) values ('TR01','2015-08-08 20:00:00')
2. Insert 2 data ke tabel detailtransaksi
Insert detailtransaksi (id_detail,id_transaksi,nama_barang,jumlah) values ('DT01','TR01','Kecap','5')
Insert detailtransaksi (id_detail,id_transaksi,nama_barang,jumlah) values ('DT02','TR01','Sambal','3')

Jika eksekusi perintah intin insert data ke tabel transaksi berhasil, dan insert 2 data ke table detailtransaksi gagal maka perintah insert data ke tabel transaksipun akan dibatalkan dan data tidak akan tersimpan ke database.

Baiklah sekarang kita akan Menggunakan Transactions di ADO.NET dengan C# dan VB.NET,

1. Buka visual studio (disini saya menggunakan visual studio community 2013) lalu buat project console applcation baru dengan nama transactionadonet

2. Tambahkan namespace System.Data.SQLClient

Menggunakan Transactions di ADO.NET dengan C# dan VB.NET

3. Pada void main ketikan script dibawah ini
C#
using (var conn = new SqlConnection("Data Source=(local);Initial Catalog=belajar;Persist Security Info=True;User ID=sa; Password=root"))
{
// membuka koneksi ke database
conn.Open();

using (SqlTransaction transcation = conn.BeginTransaction())
{
try
{
// menyimpan data ke dalam tabel transaksi
using (var cmd = new SqlCommand("Insert transaksi (id_transaksi,tanggal) values ('TR01','2015-08-08 20:00:00')", conn))
{
cmd.Transaction = transcation;
cmd.ExecuteNonQuery();
Console.WriteLine("Perintah SQL 1 Berhasil Eksekusi");
}

// menyimpan data ke dalam tabel detailtransaksi
using (var cmd = new SqlCommand("Insert detailtransaksi (id_detail,id_transaksi,nama_barang,jumlah) values ('DT01','TR01','Kecap','5')", conn))
{
cmd.Transaction = transcation;
cmd.ExecuteNonQuery();
Console.WriteLine("Perintah SQL 2 Berhasil Eksekusi");
}

// menyimpan data ke dalam tabel detailtransaksi
using (var cmd = new SqlCommand("Insert detailtransaksi (id_detail,id_transaksi,nama_barang,jumlah) values ('DT02','TR01','Sambal','3')", conn))
{
cmd.Transaction = transcation;
cmd.ExecuteNonQuery();
Console.WriteLine("Perintah SQL 3 Berhasil Eksekusi");
}


transcation.Commit();
Console.WriteLine("Commit");
}
catch (SqlException ex)
{
transcation.Rollback();
Console.WriteLine("Rollback");
}
}
}

Console.ReadLine();
VB.NET
Using conn As SqlConnection = New SqlConnection("Data Source=(local);Initial Catalog=belajar;Persist Security Info=True;User ID=sa; Password=root")

' membuka koneksi ke database
conn.Open()

Using transcation As SqlTransaction = conn.BeginTransaction()

Try
' menyimpan data ke dalam tabel transaksi
Using cmd As SqlCommand = New SqlCommand("Insert transaksi (id_transaksi,tanggal) values ('TR01','2015-08-08 20:00:00')", conn)

cmd.Transaction = transcation
cmd.ExecuteNonQuery()
Console.WriteLine("Perintah SQL 1 Berhasil Eksekusi")
End Using

' menyimpan data ke dalam tabel detailtransaksi
Using cmd As SqlCommand = New SqlCommand("Insert detailtransaksi (id_detail,id_transaksi,nama_barang,jumlah) values ('DT01','TR01','Kecap','5')", conn)

cmd.Transaction = transcation
cmd.ExecuteNonQuery()
Console.WriteLine("Perintah SQL 2 Berhasil Eksekusi")
End Using

' menyimpan data ke dalam tabel detailtransaksi
Using cmd As SqlCommand = New SqlCommand("Insert detailtransaksi (id_detail,id_transaksi,nama_barang,jumlah) values ('DT02','TR01','Sambal','3')", conn)

cmd.Transaction = transcation
cmd.ExecuteNonQuery()
Console.WriteLine("Perintah SQL 3 Berhasil Eksekusi")
End Using


transcation.Commit()
Console.WriteLine("Commit")

Catch ex As Exception

transcation.Rollback()
Console.WriteLine("Rollback")
End Try
End Using
End Using

Console.ReadLine()

4. Jalankan program tersebut maka akan seperti gambar dibawah ini

Menggunakan Transactions di ADO.NET dengan C# dan VB.NET

5. Cek data pada tabel transaksi dan detail transaksi

Menggunakan Transactions di ADO.NET dengan C# dan VB.NET
Data brhasil ditambahkan ke tabel transaksi


Menggunakan Transactions di ADO.NET dengan C# dan VB.NET
Data berhasil ditambahkan ke tabel detailtransaksi
6. sekarang kita coba ubah perintah insert tabel transaksi menjadi
Insert transaksi (id_transaksi,tanggal) values ('TR01','2015-08-08 20:00:00')

7. Jalankan program kembali dengan menekan F5

Menggunakan Transactions di ADO.NET dengan C# dan VB.NET
kita bisa lihat pada console tersebut hanya perintah SQL 1 saja yang berhasil di eksekusi sementara lainnya gagal, naum karena kita menggunakan sqltransaction maka perintah SQL 1 akan di rollback sehingga tidak ada data baru yang tersimpan ke tabel transaksi
Sekian pembahasan tentang Menggunakan Transactions di ADO.NET dengan C# dan VB.NET,
Tunggu tutorial menarik lainnya, karena itu kunjungi terus blog ini
Read More
Newer Posts Older Posts Home

Popular Posts

  • Mengatasi error "String or binary data would be truncated. The statement has been terminated."
    Malam semua setelah beberapa jam yang lalu saya memposting tentang CRUD dengan VB.NET Bagian 1  kali ini saya akan memposting  C ara mengata...
  • Tutorial Sql Injection Dengan SQLMAP Kali Linux
    Tutorial Sql Injection Dengan SQLMAP Kali Linux - SQL Injection merupakan sebuah teknik hacking dimana seorang penyerang dapat memasukka...
  • Memutuskan Koneksi Orang Lain Dengan Tuxcut Kali Linux
    Memutuskan Koneksi Orang Lain Dengan Tuxcut Kali Linux - Tuxcut adalah sebuah program kecil yang berfungsi ( netcut ) "memotong ...
  • Cara Dual Boot Kali Linux dan Windows
    Kali Linux Indonesia - Cara Install Dual Boot Kali Linux dan Windows halo sobat dimana pun berada disini penulis blog Kali Linux Indonesia...
  • Cara Mengatasi Error di Kali Linux
    Cara Mengatasi Error di Kali Linux - Pernah kah anda mengalami error di kali linux anda? jika pernah pasti menjengkelkan tidak bisa update t...

Blog Archive

  • ►  2020 (1)
    • ►  March (1)
  • ►  2016 (26)
    • ►  October (10)
    • ►  May (1)
    • ►  February (3)
    • ►  January (12)
  • ▼  2015 (35)
    • ►  December (2)
    • ►  October (4)
    • ►  September (18)
    • ▼  August (1)
      • Menggunakan Transactions di ADO.NET dengan C# dan ...
    • ►  June (1)
    • ►  May (2)
    • ►  April (1)
    • ►  March (1)
    • ►  January (5)
  • ►  2014 (99)
    • ►  December (1)
    • ►  November (3)
    • ►  October (1)
    • ►  September (6)
    • ►  August (3)
    • ►  July (3)
    • ►  June (9)
    • ►  May (9)
    • ►  April (27)
    • ►  March (20)
    • ►  February (10)
    • ►  January (7)
  • ►  2013 (17)
    • ►  December (6)
    • ►  November (1)
    • ►  October (9)
    • ►  March (1)

Tentangku Yang tak pernah Usai

My Photo
zianovel
Kenalan dulu yu, karena ada istilah tak kenal maka tak sayang. Ya walaupun terkadang udah lama kenal eh ga disayang-sayang. Giliran udah kenal dan udah sayang, eh malah ditinggal pas lagi sayang-sayangnya.
View my complete profile

Copyright © Design by Muhamad Fauzian