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

WinForm点击窗体按钮无法刷新UserControl内DataGridView问题求助

解决UserControl中DataGridView刷新失败的问题

核心问题分析

  • 错误操作新实例:你在按钮点击事件里new PageAppointment()创建的是一个全新的、未在界面显示的UserControl对象,调用它的刷新方法对当前界面上的控件完全无效。
  • Refresh方法未加载新数据:todaygrid.Refresh()仅强制控件重绘界面,不会从数据库重新获取最新数据并绑定到DataGridView,所以即便实例正确,也看不到新插入的内容。

修正后的代码示例

1. 窗体按钮点击事件代码

直接操作当前窗体上已存在的UserControl实例(假设窗体上的UserControl控件名为pageAppointment1):

private void button1_Click_1(object sender, EventArgs e)
{
    // 使用using自动释放数据库连接,避免连接泄漏
    using (SqlConnection conn = new SqlConnection("你的数据库连接字符串"))
    {
        SqlCommand cmd2 = new SqlCommand("Insert into SchedpTbl(SchedpFullName,SchedpTime,SchedpDate)Values(@cbPatient,@tPicker,@dPicker)", conn);
        cmd2.Parameters.AddWithValue("@cbPatient", cbPatient.Text);
        cmd2.Parameters.AddWithValue("@tPicker", tpicker.Text);
        cmd2.Parameters.AddWithValue("@dPicker", dpicker.Text);
        conn.Open();
        cmd2.ExecuteNonQuery();
    }

    // 调用当前界面上的UserControl实例的刷新方法
    pageAppointment1.RefreshDataGridView();
}

2. UserControl的RefreshDataGridView方法代码

修改为重新查询数据库并绑定数据源:

public void RefreshDataGridView()
{
    using (SqlConnection conn = new SqlConnection("你的数据库连接字符串"))
    {
        // 查询最新数据
        string query = "SELECT SchedpFullName, SchedpTime, SchedpDate FROM SchedpTbl";
        SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        
        // 绑定到DataGridView
        todaygrid.DataSource = dt;
    }
    
    // 可选:强制控件重绘
    todaygrid.Refresh();
}

补充说明

  • 替换代码中的"你的数据库连接字符串"为实际连接字符串,建议统一放在配置文件中,避免重复书写。
  • 如果UserControl是动态添加到窗体的,需在添加时保存引用:比如在窗体类中定义private PageAppointment _pageAppointment;,创建时赋值_pageAppointment = new PageAppointment(); Controls.Add(_pageAppointment);,按钮点击时调用_pageAppointment.RefreshDataGridView();。

内容的提问来源于stack exchange,提问作者Oddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:52:11