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.
,

Tidak ada komentar:

Posting Komentar