Senin, 02 Maret 2020

Penggunaan Fungsi IN dan NOT IN pada SQL Server

Tidak ada komentar:
Sql Server menyediakan berbagai macam function untuk memudahkan seorang programer dalam melakukan pemanggilan maupun modifikasi data pada Sql Server. Sebagai contoh yang sering digunakan adalah function IN, dimana function tersebut berfungsi untuk menampilkan data berdasarkan kriteria yang diinginkan. Secara umum jika kita ingin memanggil data dengan banyak kriteria, kebanyakan menggunakan fungsi OR, sebagai contoh saya hanya ingin menampilkan data pada tabel Produts dengan CategoryID 1 dan 2, biasanya perintah yang digunakan adalah :

SELECT * FROM Products WHERE CategoryID=1 OR CategoryID=2


Dengan menggunakan function OR terlihat sintak yang dituliskan cukup panjang dan berulang, sedangkan jika menggunakan fungsi IN, sintak yang digunakan jauh lebih simple yaitu cukup sekali menuliskan nama field yang akan difilter kemudian dilanjutkan dengan menambahkan function IN dan tanda kurung, dimana isi dari tanda kurung adalah kriteria data yang ingin ditampilkan, berikut perintahnya :

SELECT * FROM Products WHERE CategoryID IN (1,2)

Selanjutnya adalah perintah dimana kita ingin menampilkan data berdasarkan kriteria yang tidak ingin ditampilkan yaitu dengan function NOT IN 

SELECT * FROM Products WHERE CategoryID NOT IN (1,2)

Secara otomatis data yang ditampilkan merupakan data yang kriterianya tidak tercantum pada query diatas.

Rabu, 21 Agustus 2019

Membuat Installer Windows Bootable Menggunakan USB Drive (Flashdisk) dan WinToFlash

Tidak ada komentar:
Banyak cara untuk membuat media Installer Bootable baik untuk sistem operasi windows, linux dan lain sebagainya. Program atau aplikasi juga banyak tersedia untuk membuat Installer Bootable tersebut. Salah satunya adalah dengan menggunakan media USB Drive (Flashdisk) dan aplikasi WinToFlash. Untuk aplikasi kenapa saya pilih WinToFlash?, karena WinToFlash tersedia versi gratis dan sangat mudah digunakan. Dengan kedua kombinasi diatas, anda bisa membuat Installer Bootable tanpa harus bersusah payah membeli CD/DVD dan CD/DVD Room kemudian melakukan proses Burning CD/DVD yang memakan waktu cukup lama. Dengan menggunakan dua komponen diatas, anda sudah bisa menghemat biaya dan waktu. Saya tidak akan menjabarkan secara panjang lebar terkait cara atau tutorial dalam bentuk teks dan gambar, tetapi anda bisa melihatnya pada video dibawah ini
Untuk tutorial selengkapnya silahkan simak video dibawah ini, dan jangan lupa SUBSCRIBE, LIKE & SHARE ya.

Menyimpan Konfigurasi Koneksi ke Sql Server dengan C#

Tidak ada komentar:
Melanjutkan tutorial sebelumnya yaitu Membuat Form Koneksi Sql Server dengan C# dimana koneksi yang dibangun ditekankan agar lebih fleksibel, dimana bentuk koneksi tidak kaku dengan menempelkan pada baris kode program, tetapi harusnya dibuat tersendiri baik disimpan pada Registry Windows maupun bentuk lainnya. Tutorial kali ini akan mempraktekkan cara menyimpan konfigurasi koneksi ke fitur User Settings yang terdapat pada Visual Studio. Buka projek sebelumnya dan tambahkan sebuah objek Button yang berfungsi untuk menguji koneksi ke Database Server, berikut tampilannya
Kemudian pindahkan baris kode yang ada pada objek button OK ke objek button Test Connection dengan cara copy paste. Berikut ini adalah listing kode secara keseluruhan dari program
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace SqlServerConnection
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            Properties.Settings.Default.Server = txtServer.Text;
            Properties.Settings.Default.InitialCatalog = txtInitialCatalog.Text;
            Properties.Settings.Default.UserId = txtUserID.Text;
            Properties.Settings.Default.Password = txtPassword.Text;
            Properties.Settings.Default.Save();
            MessageBox.Show("Connection to the server was successfully saved!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnTestConnection_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection SqlConn = new SqlConnection();
                SqlConn.ConnectionString = "Data Source=" + txtServer.Text + ";" +
                                           "Initial Catalog=" + txtInitialCatalog.Text + ";" +
                                           "User Id=" + txtUserID.Text + ";" +
                                           "Password=" + txtPassword.Text + ";";
                if (SqlConn.State == ConnectionState.Open) SqlConn.Close();
                SqlConn.Open();
                MessageBox.Show("Connection successfully!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ups..something wrong, " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            txtServer.Text = Properties.Settings.Default.Server.ToString();
            txtInitialCatalog.Text = Properties.Settings.Default.InitialCatalog.ToString();
            txtUserID.Text = Properties.Settings.Default.UserId.ToString();
            txtPassword.Text = Properties.Settings.Default.Password.ToString();
        }
    }
}

Untuk tutorial selengkapnya silahkan simak video dibawah ini, dan jangan lupa SUBSCRIBE, LIKE & SHARE ya.

Senin, 19 Agustus 2019

Membuat Form Koneksi Sql Server dengan C#

Tidak ada komentar:
Fleksibelitas program merupakan sebuah keharusan dalam sebuah sistem informasi, termasuk didalamnya yaitu dalam hal konfigurasi konektivitas antara program dengan Database Sql Server. Lantas bagaimana yang dimaksud dengan fleksibelitas dalam koneksi program? Maksud dari fleksibelitas disini adalah, membuat sebuah bentuk form khusus yang berfungsi untuk mengubah konfigurasi koneksi dari program ke server database, tanpa harus mengubah listing kode dalam program. Berikut cara membuatnya menggunakan Visual C#.
Berikut ini listing kode program keseluruhan pada Form koneksi
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace SqlServerConnection
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection SqlConn = new SqlConnection();
                SqlConn.ConnectionString = "Data Source=" + txtServer.Text + ";" +
                                           "Initial Catalog=" + txtInitialCatalog.Text + ";" +
                                           "User Id=" + txtUserID.Text + ";" +
                                           "Password=" + txtPassword.Text + ";";
                if (SqlConn.State == ConnectionState.Open) SqlConn.Close();
                SqlConn.Open();
                MessageBox.Show("Connection successfully!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ups..something wrong, " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}
Dibawah ini adalah hasil pengujian dari program yang dimaksud

Anda bisa memodifikasi cara diatas yaitu dengan menyimpan baris koneksi ke dalam fitur Properties-Settings pada visual C#, selamat mencoba.

Untuk tutorial selengkapnya silahkan simak video dibawah ini, dan jangan lupa SUBSCRIBE, LIKE & SHARE ya.

Jumat, 16 Agustus 2019

Menambahkan Combo Box pada Datagridview menggunakan C#

Tidak ada komentar:
Dalam pemrograman berbasis Desktop, objek Datagridview sangat sering sekali digunakan untuk menampilkan data dari database. Datagridview juga bersifat dinamis dalam artian dapat dikustomisasi sesuai dengan kebutuhan pengguna. Salah satunya adalah dengan menambahkan objek lain ke dalam datagridview seperti objek Combo Box, Text Box, Check Box dan DateTimePicker. Buat sebuah projek dan beri nama Combo Grid, kemudian desain program seperti gambar berikut :
Klik dua kali pada objek Form1 kemudian pada event Form Load ketikkan perintah berikut :
private void Form1_Load(object sender, EventArgs e)
{
    OleDbConnection Conn = new OleDbConnection(Properties.Settings.Default.ConnString);
    Conn.Open();

    string sQuery = "SELECT OrderId,CustomerID,OrderDate,Freight,ShipName FROM Orders";
    OleDbDataAdapter adp1 = new OleDbDataAdapter(sQuery, Conn);
    OleDbCommandBuilder cb1 = new OleDbCommandBuilder(adp1);

    DataTable dt1 = new DataTable();
    adp1.Fill(dt1);

    BindingSource bs1 = new BindingSource();
    bs1.DataSource = dt1;

    string sCust = "SELECT CustomerID,ContactName FROM Customers";
    OleDbDataAdapter adp2 = new OleDbDataAdapter(sCust, Conn);
    OleDbCommandBuilder cb2 = new OleDbCommandBuilder(adp2);

    DataTable dt2 = new DataTable();
    adp2.Fill(dt2);

    BindingSource bs2 = new BindingSource();
    bs2.DataSource = dt2;

    DataGridViewTextBoxColumn ctOrderId = new DataGridViewTextBoxColumn();
    ctOrderId.HeaderText = "Order ID";
    ctOrderId.Width = 60;
    ctOrderId.DataPropertyName = "OrderId";
    ctOrderId.Name = "OrderId";
    dgvData.Columns.Add(ctOrderId);

    DataGridViewComboBoxColumn cbCust = new DataGridViewComboBoxColumn();
    cbCust.HeaderText = "Customer Name";
    cbCust.Width = 100;
    cbCust.DataPropertyName = "CustomerID";
    cbCust.Name = "CustomerID";
    cbCust.DataSource = bs2;
    cbCust.DisplayMember = "ContactName";
    cbCust.ValueMember = "CustomerID";
    dgvData.Columns.Add(cbCust);

    DataGridViewTextBoxColumn ctDate = new DataGridViewTextBoxColumn();
    ctDate.HeaderText = "Order Date";
    ctDate.Width = 60;
    ctDate.DataPropertyName = "OrderDate";
    ctDate.Name = "OrderDate";
    dgvData.Columns.Add(ctDate);

    DataGridViewTextBoxColumn ctFreight = new DataGridViewTextBoxColumn();
    ctFreight.HeaderText = "Freight";
    ctFreight.Width = 50;
    ctFreight.DataPropertyName = "Freight";
    ctFreight.Name = "Freight";
    dgvData.Columns.Add(ctFreight);

    DataGridViewTextBoxColumn ctShip = new DataGridViewTextBoxColumn();
    ctShip.HeaderText = "Ship Name";
    ctShip.Width = 60;
    ctShip.DataPropertyName = "ShipName";
    ctShip.Name = "ShipName";
    dgvData.Columns.Add(ctShip);

    dgvData.DataSource = bs1;
}

Berikut ini sintak kode secara keseluruhan :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace ComboGrid
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            OleDbConnection Conn = new OleDbConnection(Properties.Settings.Default.ConnString);
            Conn.Open();

            string sQuery = "SELECT OrderId,CustomerID,OrderDate,Freight,ShipName FROM Orders";
            OleDbDataAdapter adp1 = new OleDbDataAdapter(sQuery, Conn);
            OleDbCommandBuilder cb1 = new OleDbCommandBuilder(adp1);

            DataTable dt1 = new DataTable();
            adp1.Fill(dt1);

            BindingSource bs1 = new BindingSource();
            bs1.DataSource = dt1;

            string sCust = "SELECT CustomerID,ContactName FROM Customers";
            OleDbDataAdapter adp2 = new OleDbDataAdapter(sCust, Conn);
            OleDbCommandBuilder cb2 = new OleDbCommandBuilder(adp2);

            DataTable dt2 = new DataTable();
            adp2.Fill(dt2);

            BindingSource bs2 = new BindingSource();
            bs2.DataSource = dt2;

            DataGridViewTextBoxColumn ctOrderId = new DataGridViewTextBoxColumn();
            ctOrderId.HeaderText = "Order ID";
            ctOrderId.Width = 60;
            ctOrderId.DataPropertyName = "OrderId";
            ctOrderId.Name = "OrderId";
            dgvData.Columns.Add(ctOrderId);

            DataGridViewComboBoxColumn cbCust = new DataGridViewComboBoxColumn();
            cbCust.HeaderText = "Customer Name";
            cbCust.Width = 100;
            cbCust.DataPropertyName = "CustomerID";
            cbCust.Name = "CustomerID";
            cbCust.DataSource = bs2;
            cbCust.DisplayMember = "ContactName";
            cbCust.ValueMember = "CustomerID";
            dgvData.Columns.Add(cbCust);

            DataGridViewTextBoxColumn ctDate = new DataGridViewTextBoxColumn();
            ctDate.HeaderText = "Order Date";
            ctDate.Width = 60;
            ctDate.DataPropertyName = "OrderDate";
            ctDate.Name = "OrderDate";
            dgvData.Columns.Add(ctDate);

            DataGridViewTextBoxColumn ctFreight = new DataGridViewTextBoxColumn();
            ctFreight.HeaderText = "Freight";
            ctFreight.Width = 50;
            ctFreight.DataPropertyName = "Freight";
            ctFreight.Name = "Freight";
            dgvData.Columns.Add(ctFreight);

            DataGridViewTextBoxColumn ctShip = new DataGridViewTextBoxColumn();
            ctShip.HeaderText = "Ship Name";
            ctShip.Width = 60;
            ctShip.DataPropertyName = "ShipName";
            ctShip.Name = "ShipName";
            dgvData.Columns.Add(ctShip);

            dgvData.DataSource = bs1;
        }
    }
}

Jalankan program dan hasilnya seperti gambar dibawah ini :
Untuk tutorial selengkapnya silahkan simak video dibawah ini, dan jangan lupa SUBSCRIBE, LIKE & SHARE ya.

Kamis, 08 Agustus 2019

Mengintip Password pada Database MS Access Menggunakan Visual Basic .Net

Tidak ada komentar:
Ide ini berawal saat saya mendapatkan job untuk membuat laporan dari sebuah program, dimana program yang dimaksud merupakan program build up alias program sudah jadi. Cukup repot juga karena program tersebut menggunakan database portable yang telah diberi password oleh programmernya. Beberapa saat saya berpikir bagaimana caranya untuk membuka database yang dipassword itu. Kemudian saya browsing di internet mencari cara bagaimana melihat password yang ada pada database tersebut. Singkat cerita, akhirnya saya temukan sebuah software yang berfungsi untuk melihat password yang ada pada database MS Access. Selanjutnya saya praktekkan cara diatas dan ternyata berhasil, dari situ saya lanjutkan untuk mengerjakan job sampai selesai.

Muncul rasa penasaran saya bagaimana caranya melihat ataupun istilah ekstremnya menjebol password pada sebuah database MS Access. Berhari - hari berselancar di dunia maya untuk mencari referensi tentang database MS Access, akhirnya ketemu sistem kerja ataupun algoritma kriptografi dari database yang dimaksud. Ditambah lagi dengan kumpulan - kumpulan source code yang berserakan seperti tak bertuan, kemudian saya rancang sebuah program untuk mengaplikasikan rasa penasaran yang selama ini melanda batin saya. Setelah bersusah payah selama berhari - hari mengerjakan program tersebut dan akhirnya saya pun berhasil menyelesaikannya dengan predikat WTP (Wajar Tanpa Pamrih).
Baik langsung saya jabarkan step by step cara pembuatannya dengan membuka Microsoft Visual Basic versi 2005 ke atas, disini saya menggunakan versi 2010 Express Edition. Buat sebuah projek kemudian beri nama Access Password.
Langkah selanjutnya dengan mendesain Form dan menambahkan beberapa objek pada Form hingga hasilnya seperti gambar dibawah ini :
Sebelum melakukan pengkodean pada program, silahkan download file library Access Management pada link berikut : https://www.4shared.com/s/fmkwtmupjee
Setelah itu tambahkan file library diatas pada Visual Basic .Net dengan cara pilih klik kanan pada nama projek, kemudian pilih Add Reference...

Klik dua kali pada tombol browse lalu ketikkan perintah dibawah ini :

Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
    Dim ofd As New OpenFileDialog
    ofd.Filter = "Microsoft Access (*.mdb)|*.mdb"
    If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
        txtPath.Text = ofd.FileName
    End If
End Sub
Lanjutkan dengan double klik pada tombol Get Password, kemudian ketikkan perintah dibawah ini :

Private Sub btnGetPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetPassword.Click
    Dim am As New AccessManagement.AccessPassword
    txtHasil.Text = am.GetMs2000XP(txtPath.Text)
End Sub
Jalankan program, jika step yang dilakukan benar akan didapatkan hasil seperti gambar berikut :

Untuk mendapatkan tutorial yang lebih jelas silahkan simak video dibawah ini, dan jangan lupa SUBSCRIBE, LIKE & SHARE ya.

Kamis, 01 Februari 2018

Menyimpan Data dari SQL Server menjadi CSV

Tidak ada komentar:
Bagi seorang Programer maupun Database Administrator terkadang sering diminta oleh user ataupun atasan di kantor untuk memberikan data yang diminta oleh keduanya. Apakah data transaksi penjualan maupun data - data umum seperti data pelanggan, data barang dan lain sebagainya. Kalau anda menggunakan database SQL Server maka anda bisa memanfaatkan fungsi Save As pada software Microsoft SQL Server Management Studio. Adapun caranya yaitu dengan membuat query pemanggilan terhadap data yang akan diminta kemudian eksekusi. Akan muncul hasil seperti berikut pada Results Pane
Kemudian klik kanan pada baris data pilih Save As
File yang disimpan akan berformat .csv dan untuk membuka file tersebut silahkan lihat disini : http://www.salamilmu.com/2016/11/melihat-isi-data-dari-file-berformat.html
Berikut hasil export data ke format .csv

Rabu, 31 Januari 2018

Menggabungkan Isi Beberapa Tabel Menjadi Satu Pada SQL Server

Tidak ada komentar:
Pada SQL Server terdapat perintah yang berfungsi untuk menggabungkan beberapa isi tabel menjadi satu, perintah tersebut adalah Union. Penggabungan tersebut menggunakan query disertai fungsi Union dengan syarat field - field yang terkandung pada tabel - tabel yang akan digabung harus memiliki nama yang sama, jika tidak maka perintah tersebut gagal dijalankan. Namun jika terdapat perbedaan nama pada tabel - tabel yang ada, maka anda harus menggunakan fungsi AS atau alias untuk field  - field yang akan digabung. Sebagai contoh saya memiliki dua buah tabel yaitu tabel zona1 dan tabel zona2, dimana isi dari tabel zona1 adalah sebagai berikut :
SELECT * FROM zona1

sedangkan isi dari tabel zona2 adalah sebagai berikut :
SELECT * FROM zona2

Pada MS SQL Server Management Studio ketikkan query berikut :
SELECT * FROM zona1
UNION
SELECT * FROM zona2

Baca juga : Restore Database SQL Server Menggunakan Microsoft SQL Server Management Studio

Kemudian ekseskusi query tersebut dengan mengklik tombol Execute atau tekan tombol F5 pada keyboard, maka hasilnya bisa dilihat pada gambar dibawah :
Anda juga bisa menggunakan Clause Where untuk memfilter data yang diinginkan dengan membuat Sub Query. Semoga bermanfaat.