Winforms datagridview不显示数据

时间:2014-06-05 00:41:01

标签: winforms datagridview

下面的代码返回一个空的datagridview。 gridview的列标题是通过设计者添加的。我不想通过gridview编辑任何这些数据 - 只需显示它。 在dataAdapter.Fill(tblStats)的ShowGrid()方法中使用断点;声明,我已经确定数据表中填充了正确的数据。但是当表单出现时,除了列标题之外,gridview是空的。网格单元格是使用白色背景创建的(不是灰色,就像数据源为空),但值不存在。我错过了什么?提前谢谢。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Net;

namespace WindowsFormsApplication1
{
    public partial class StatViewer : Form
    {
        public StatViewer()
        {
            InitializeComponent();
        }

        private void StatViewer_Load(object sender, EventArgs e)
        {
            ShowGrid();  
        }

        private void ShowGrid()
        {
        string dbConnStr = "Data Source=localhost;Initial Catalog=StatData;Persist Security Info=True;User ID=USERID;Password=PASSWORD";
        SqlConnection dbConn = new SqlConnection(dbConnStr);
        SqlCommand dbCmd = new SqlCommand();
        dbCmd.CommandType = CommandType.Text;
        dbCmd.CommandText = "SELECT * FROM Statistics";
        dbCmd.Connection = dbConn;
        dbConn.Open();
        SqlDataAdapter dataAdapter = new SqlDataAdapter(dbCmd.CommandText, dbConn);
        DataTable tblStats = new DataTable();
        dataAdapter.Fill(tblStats);
        dgvStats.DataSource = tblStats;
        }

        private void closeToolStripMenuItem_Click(object sender, EventArgs e)
        {
        this.Close();
        }

        private void btnDone_Click(object sender, EventArgs e)
        {
        this.Close();
        }
    }
}

1 个答案:

答案 0 :(得分:3)

如果将来有人发现这个问题,我发现了问题所在。

我最初使用可视化设计器来编辑datagridview中的列。设计器中有一个我省略的设置,称为DataPropertyName,它必须与数据库中的列具有相同的名称。使用设计器时,我只填写了名称属性,并且没有填写 DataPropertyName 。因此,即使代码是正确的,dgv也是空的。一旦填写完毕,它就能正常工作。