DataGridView不显示MySQL表中的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataGridView不显示MySQL表中的数据相关的知识,希望对你有一定的参考价值。

我已经开始学习在C#中使用mysql了,我无法将数据从表加载到DataGridView中,无论我在启动程序时做什么都是空白。

我已经看过关于这个问题的多个线程和youtube视频,尝试了不同的方法。我尝试dataGridView1.AutoGenerateColumns = true,它仍然是空白,并尝试使用设计器添加列并将其dataPropertyName更改为表列的名称,它只显示我添加的6列中的2列。当我在将其数据源连接到表后尝试检查bs计数时,它显示9行(这是我在MySQL表中有多少),而datagridview.RowCount显示10。

http://prntscr.com/mmqeb9这是设计师的表格外观

http://prntscr.com/mmqerp这是我启动它后的表格

http://prntscr.com/mmqf1t这是MySQL表

编辑:

prntscr.com/mmqvhw我不确定这是否是什么但当我查看Binding Source bs中的行结果时我发现ItemArray是索引6而行应该是5.是DVG显示第6个索引是空,这就是为什么它显示黑色DVG

编辑2:添加这个愚蠢的代码行MessageBox.Show(Convert.ToInt32(bs [0])。ToString()),试图显示bs的数据,我得到InvalidCastException,并在该表完全显示后http://prntscr.com/mmrfw7

我不知道我在这一点上做了什么我尝试了所有的任何帮助将不胜感激

这是应该填充datagridview的代码的一部分:

            MySqlDataAdapter adapter = new MySqlDataAdapter();

            MySqlCommand cmd;

            DataSet ds = new DataSet();

            BindingSource bs = new BindingSource();

            string strcmd = "SELECT * FROM lek;";

            cmd = new MySqlCommand(strcmd, connection);

            connection.Open();

            //adapter
            adapter.SelectCommand = cmd;

            adapter.Fill(ds);          

            bs.DataSource = ds.Tables[0];

             //datagridview

            dataGridView1.AutoGenerateColumns = true;

            MessageBox.Show(bs.Count.ToString());

            dataGridView1.DataSource = bs;

            MessageBox.Show(dataGridView1.RowCount.ToString());
答案

我刚开始新项目并复制了代码。按照预期工作。

以上是关于DataGridView不显示MySQL表中的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个表中的数据显示到dataGridView

DataGridView控件中的数据显示不出来

DataGridView控件表格中的数据显示不出来

MFC程序的Datagridview控件如何绑定MySql数据库中的数据进行显示啊?语言是C++。

MySQL Join语句将数据从两个表中获取到datagridview中

datagridview中datagridviewcomboboxcolumn使用问题