You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#点击Insert按钮后自动刷新DataGridView显示数据的实现求助

解决插入数据后自动刷新DataGridView的问题

这问题很常见,核心思路是把「加载数据到DataGridView」的逻辑抽成独立方法,这样插入操作完成后直接调用它就行,不用重复写代码。我给你一步步拆解:

1. 封装查看数据的逻辑为独立方法

把你View按钮里用来查询并显示数据的代码,提取到一个单独的方法中。这样不管是点击View按钮,还是插入后自动刷新,都能复用这段代码,还方便后续维护。

示例代码(根据你的OleDb场景调整):

private void LoadDataToGridView()
{
    // 使用using语句自动管理数据库连接,避免连接泄露
    using (OleDbConnection con = new OleDbConnection("你的数据库连接字符串"))
    {
        try
        {
            con.Open();
            // 替换成你的查询语句,比如查询目标表的所有数据
            string query = "SELECT * FROM 你的表名称";
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, con);
            DataTable dataTable = new DataTable();
            
            // 填充数据到DataTable并绑定到DataGridView
            dataAdapter.Fill(dataTable);
            dataGridView1.DataSource = dataTable;
        }
        catch (Exception ex)
        {
            MessageBox.Show("加载数据出错:" + ex.Message);
        }
    } // using块结束后,连接会自动关闭
}

2. 简化View按钮的代码

现在View按钮只需要调用上面的方法就行:

private void ViewButton_Click(object sender, EventArgs e)
{
    LoadDataToGridView();
}

3. 修改Insert按钮的代码,插入后自动刷新

在Insert按钮的插入操作成功完成后,直接调用LoadDataToGridView()方法,就能自动刷新DataGridView了。同时建议用参数化查询避免SQL注入,并且做好异常处理:

private void InsertButton_Click(object sender, EventArgs e)
{
    try
    {
        using (OleDbConnection con = new OleDbConnection("你的数据库连接字符串"))
        {
            con.Open();
            OleDbCommand cmd = con.CreateCommand();
            
            // 替换成你的插入语句,用参数化查询更安全
            cmd.CommandText = "INSERT INTO 你的表名称 (列1, 列2) VALUES (@参数1, @参数2)";
            // 根据你的实际字段添加参数,示例如下:
            cmd.Parameters.AddWithValue("@参数1", textBox1.Text);
            cmd.Parameters.AddWithValue("@参数2", textBox2.Text);
            
            // 执行插入操作
            int affectedRows = cmd.ExecuteNonQuery();
            if (affectedRows > 0)
            {
                MessageBox.Show("数据插入成功!");
                // 插入成功后立即刷新DataGridView
                LoadDataToGridView();
            }
            else
            {
                MessageBox.Show("插入失败,请检查输入!");
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("插入操作出错:" + ex.Message);
    }
}

关键好处

  • 代码复用:避免重复编写加载数据的逻辑,减少冗余
  • 易维护:以后要修改数据显示的规则(比如调整查询条件、修改列显示),只需要改LoadDataToGridView()一个方法
  • 资源安全:using语句确保数据库连接被正确释放,不会出现连接泄露问题

内容的提问来源于stack exchange,提问作者J.A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:52:52