对话框表单关闭时刷新数据网格

时间:2015-03-19 01:27:41

标签: c#

我有这样的应用程序:

  • 有一个主要表单(frmMasuk),带有datagrid和“Add New”按钮
  • 当有人点击Add New时,会显示对话框表单(Form2)以添加新数据。
  • 当有人点击对话框表单上的“保存”时,它将被关闭 数据网格将被刷新

当对话框表单关闭时,我遇到了问题,必须刷新数据网格。

这是我的一些代码:

frmMasuk:

public frmMasuk()
    {
        InitializeComponent();

        SqlCommand sql = new SqlCommand("SELECT * FROM kas ORDER BY id_kas, tanggal DESC", koneksi.mykonek);
        koneksi.openkonek();
        SqlDataReader reader = sql.ExecuteReader();
        DataTable a = new DataTable();
        a.Load(reader);
        koneksi.closekonek();
        dgv.DataSource = a;
        dgv.Enabled = true;

    }

private void button3_Click(object sender, EventArgs e)
        {
            frmKasNew a = new frmKasNew();
            a.ShowDialog();
        }

frmKasNew:

 private void simpankas()
        {
            koneksi.openkonek();
            DateTime tgl = Convert.ToDateTime(ttanggal.Text);
            SqlCommand sql = new SqlCommand("INSERT INTO kas(tanggal, jenis, jumlah,  keterangan) VALUES('"+ tgl +"','"+ tjenis.Text +"','" + tjumlah.Text +  "','" + tket.Text  +"') ",koneksi.mykonek);
            int exe = sql.ExecuteNonQuery();

            if (exe == 0)
            {
                MessageBox.Show("Data gagal disimpan ke database", "Aplikasi KAS Usaha", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                MessageBox.Show("Data berhasil disimpan!", "Aplikasi KAS Usaha", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Dispose();


            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (ttanggal.Text == "" || tjenis.Text == "" || tjumlah.Text == "" || tket.Text == "")
            {
                MessageBox.Show("Harap melengkapi data sebelum menyimpan","Aplikasi KAS Usaha",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                simpankas();
            }
            // end if
        }

2 个答案:

答案 0 :(得分:0)

向a.OnClose事件添加事件:

    private void button3_Click(object sender, EventArgs e)
    {
        frmKasNew a = new frmKasNew();
        a.FormClosed += FormClosed;
        a.ShowDialog();
    }

private void FormClosed(object sender, FormClosedEventArgs e)
{
        SqlCommand sql = new SqlCommand("SELECT * FROM kas ORDER BY id_kas, tanggal DESC", koneksi.mykonek);
        koneksi.openkonek();
        SqlDataReader reader = sql.ExecuteReader();
        DataTable a = new DataTable();
        a.Load(reader);
        koneksi.closekonek();
        dgv.DataSource = a;
        dgv.Enabled = true;
    }

答案 1 :(得分:0)

您是否尝试过像

这样的DialogResult显示表单
private void button3_Click(object sender, EventArgs e)

{
frmKasNew kas = new frmKasNew();
DialogResult result = kas.ShowDialog():

If (result == DialogReult.OK)
{
    CurrencyManager cm = (CurrencyManager)
    dgv.BindingContext[a];
    cm.Refresh();
}

然后使用CurrencyManager刷新数据网格?