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

C#代码无报错但DataGridView无法显示数据库表数据,求排查原因

DataGridView无数据显示的排查方案

以下是针对你的代码问题的具体排查方向和修复建议:

1. 先确认查询是否真的返回数据

你的代码没有验证查询结果,先加调试代码确认DataTable是否有数据:
在adaptador.Fill(dt);之后添加:

// 调试输出,看是否有数据
MessageBox.Show($"查询到{dt.Rows.Count}条数据");

如果弹出的数字是0,说明:

  • 要么InformacionEquipos表本身没有数据
  • 要么连接字符串有误:比如Server名称写错(SQL Express实例需要加\SQLEXPRESS后缀,比如DESKTOP-5GVNUF2\SQLEXPRESS),或者数据库名Censo拼写错误

2. 检查DataGridView的配置

  • 确认dgvDatos的AutoGenerateColumns属性是否为true。如果被手动改成false,且没有手动添加列,就会看不到数据。可以在绑定数据源前强制设置:
dgvDatos.AutoGenerateColumns = true;
  • 检查控件是否可见,或者有没有被其他控件遮挡。

3. 修复连接资源的管理问题

全局的SqlConnection变量容易引发连接状态异常,改用using语句自动管理资源,同时避免手动打开连接(SqlDataAdapter.Fill()会自动处理连接的打开和关闭):

private void Form1_Load(object sender, EventArgs e)
{
    using (SqlConnection conexion = new SqlConnection("Server=DESKTOP-5GVNUF2;Database=Censo;Integrated Security=True"))
    {
        string consulta = "SELECT * FROM InformacionEquipos";
        SqlDataAdapter adaptador = new SqlDataAdapter(consulta, conexion);
        DataTable dt = new DataTable();
        adaptador.Fill(dt);
        
        MessageBox.Show($"查询到{dt.Rows.Count}条数据");
        dgvDatos.AutoGenerateColumns = true;
        dgvDatos.DataSource = dt;
    }
}

4. 确认Form_Load事件是否绑定

打开窗体设计器,选中窗体,查看属性窗口的「事件」标签,检查Load事件是否关联了Form1_Load方法。如果没绑定,这个方法根本不会执行,自然不会加载数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:55:09