private void btnHapusTabungan_Click(object sender, EventArgs e)
        {
            if (lsvTabungan.SelectedItems.Count > 0)
            {
                var konfirmasi = MessageBox.Show("Apakah data pengurus ingin dihapus?", "Konfirmasi",
                                                 MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

                if (konfirmasi == DialogResult.Yes)
                {
                    // ambil objek mhs yang mau dihapus dari collection
                    Tabungan tbg = listOfTabungan[lsvTabungan.SelectedIndices[0]];

                    // panggil operasi CRUD
                    var result = tabunganController.Delete(tbg);
                    if (result > 0)
                    {
                        LoadDataTabungan();
                    }
                }
            }
            else // data belum dipilih
            {
                MessageBox.Show("Data pengurus belum dipilih !!!", "Peringatan",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
        public int Delete(Tabungan tbg)
        {
            int result = 0;

            // deklarasi perintah SQL
            string sql = @"delete from tabungan where No_Rekening=@No_Rekening";

            // membuat objek command menggunakan blok using
            using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
            {
                // mendaftarkan parameter dan mengeset nilainya
                cmd.Parameters.AddWithValue("@No_Rekening", tbg.No_rekening);

                try
                {
                    // jalankan perintah INSERT dan tampung hasilnya ke dalam variabel result
                    result = cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.Print("Create error: {0}", ex.Message);
                }
            }

            return(result);
        }
        private void OnUpdateEventHandler(Tabungan tbg)
        {
            // ambil index data prs yang edit
            int index = lsvTabungan.SelectedIndices[0];

            // update informasi mhs di listview
            ListViewItem itemRow = lsvTabungan.Items[index];

            itemRow.SubItems[1].Text = tbg.No_rekening;
            itemRow.SubItems[2].Text = tbg.Bank;
            itemRow.SubItems[3].Text = tbg.Saldo;
        }
        public FrmEntryTabungan(string title, Tabungan obj, TabunganController controller)
            : this()
        {
            this.Text       = title;
            this.controller = controller;

            isNewData = false;
            tbg       = obj;

            txtNoRekeningTabungan.Text = tbg.No_rekening;
            txtBankPemasukan.Text      = tbg.Bank;
            txtSaldoPemasukan.Text     = tbg.Saldo;
        }
        private void OnCreateEventHandler(Tabungan tbg)
        {
            // tambahkan objek prs yang baru ke dalam collection
            listOfTabungan.Add(tbg);

            int noUrut = lsvTabungan.Items.Count + 1;

            // tampilkan data prs yg baru ke list view
            ListViewItem item = new ListViewItem(noUrut.ToString());

            item.SubItems.Add(tbg.No_rekening);
            item.SubItems.Add(tbg.Bank);
            item.SubItems.Add(tbg.Saldo);

            lsvTabungan.Items.Add(item);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            // jika data baru, inisialisasi objek mahasiswa
            if (isNewData)
            {
                tbg = new Tabungan();
            }

            tbg.No_rekening = txtNoRekeningTabungan.Text;
            tbg.Bank        = txtBankPemasukan.Text;
            tbg.Saldo       = txtSaldoPemasukan.Text;

            int result = 0;

            if (isNewData) // tambah data baru, panggil method Create
            {
                // panggil operasi CRUD
                result = controller.Create(tbg);

                if (result > 0)    // tambah data berhasil
                {
                    OnCreate(tbg); // panggil event OnCreate

                    // reset form input, utk persiapan input data berikutnya
                    txtNoRekeningTabungan.Clear();
                    txtBankPemasukan.Clear();
                    txtSaldoPemasukan.Clear();

                    txtNoRekeningTabungan.Focus();
                }
            }
            else // edit data, panggil method Update
            {
                // panggil operasi CRUD
                result = controller.Update(tbg);

                if (result > 0)
                {
                    OnUpdate(tbg); // panggil event OnUpdate
                    this.Close();
                }
            }
        }
        public List <Tabungan> ReadByNoRekening(string No_rekening)
        {
            // membuat objek collection untuk menampung objek mahasiswa
            List <Tabungan> list = new List <Tabungan>();

            try
            {
                // deklarasi perintah SQL
                string sql = @"select * from tabungan where No_rekening like @No_rekening order by No_rekening";

                // membuat objek command menggunakan blok using
                using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
                {
                    cmd.Parameters.AddWithValue("@No_rekening", "%" + No_rekening + "%");
                    // membuat objek dtr (data reader) untuk menampung result set (hasil perintah SELECT)
                    using (MySqlDataReader dtr = cmd.ExecuteReader())
                    {
                        // panggil method Read untuk mendapatkan baris dari result set
                        while (dtr.Read())
                        {
                            // proses konversi dari row result set ke object
                            Tabungan tbg = new Tabungan();
                            tbg.No_rekening = dtr["No_rekening"].ToString();
                            tbg.Bank        = dtr["Bank"].ToString();
                            tbg.Saldo       = dtr["Saldo"].ToString();

                            // tambahkan objek mahasiswa ke dalam collection
                            list.Add(tbg);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Print("ReadAll error: {0}", ex.Message);
            }

            return(list);
        }
        private void btnPerbaikiTabungan_Click(object sender, EventArgs e)
        {
            if (lsvTabungan.SelectedItems.Count > 0)
            {
                // ambil objek mhs yang mau diedit dari collection
                Tabungan tbg = listOfTabungan[lsvTabungan.SelectedIndices[0]];

                // buat objek form entry data mahasiswa
                FrmEntryTabungan frmEntry = new FrmEntryTabungan("Edit Data Pengurus", tbg, tabunganController);

                // mendaftarkan method event handler untuk merespon event OnUpdate
                frmEntry.OnUpdate += OnUpdateEventHandler;

                // tampilkan form entry mahasiswa
                frmEntry.ShowDialog();
            }
            else // data belum dipilih
            {
                MessageBox.Show("Data belum dipilih", "Peringatan", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
            }
        }
        public int Update(Tabungan tabungan)
        {
            int result = 0;

            if (string.IsNullOrEmpty(tabungan.No_rekening))
            {
                MessageBox.Show("No Rekening harus diisi !", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(0);
            }
            if (string.IsNullOrEmpty(tabungan.Bank))
            {
                MessageBox.Show("No Rekening Harus Diisi !", "Peringatan ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(0);
            }
            if (string.IsNullOrEmpty(tabungan.Saldo))
            {
                MessageBox.Show("No Rekening Harus Diisi !", "Peringatan ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(0);
            }


            using (DbContext context = new DbContext())
            {
                _repository = new TabunganRepository(context);
                result      = _repository.Update(tabungan);
            }

            if (result > 0)
            {
                MessageBox.Show("Data Tabungan berhasil diupdate !", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Data Tabungan gagal diupdate !", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            return(result);
        }