C# DataGridView未显示MySQL表中的数据

C# DataGridView未显示MySQL表中的数据,c#,mysql,datagridview,C#,Mysql,Datagridview,我已经开始学习在C#中使用MySQL,我一直在将表中的数据加载到DataGridView中,无论我在启动程序时做什么都是空白的 我看了很多关于这个问题的帖子和youtube视频,尝试了不同的方法,但都没有奏效。我尝试将dataGridView1.AutoGenerateColumns=true设置为空,并尝试使用designer添加列,并将其dataPropertyName更改为表列的名称,结果只显示了我添加的6列中的2列。在将其数据源连接到表之后,当我尝试检查bs计数时,它显示9行(这是我在M

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

我看了很多关于这个问题的帖子和youtube视频,尝试了不同的方法,但都没有奏效。我尝试将dataGridView1.AutoGenerateColumns=true设置为空,并尝试使用designer添加列,并将其dataPropertyName更改为表列的名称,结果只显示了我添加的6列中的2列。在将其数据源连接到表之后,当我尝试检查bs计数时,它显示9行(这是我在MySQL表中的行数),datagridview.RowCount显示10行

这是设计师设计的桌子造型

这就是我启动后桌子的样子

这是MySQL表

编辑:

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

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

我不知道我现在在做什么,我尝试了一切,希望能得到任何帮助

这是填充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());

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

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

使用调试器遵循代码并检查每个步骤的结果。数据集是否已填充?数据表?msgBox输出是什么?msgBox输出绑定源bs是9,对于datagridview,行数是10。MySQL表有9行。您显示的DGV只有2列。您是否有多个DGV?(顺便说一句,第10行是AllowUserToAddress os为true时默认创建的输入行。)我只有1个DGV,在我添加这6列之后,它只显示2列,之前它是完全空白的,我这样做是因为我找到了一些解决方案,这些解决方案说使用designer生成列,并将它们的DataPropertyName更改为表列的名称。您可以通过以下两种方式来实现:让系统来实现,或者自己来实现;设置AutoGenerateColumns=true或false。如果为true,则会清除所有旧列在最后一个msgBox上放置一个断点,并深入dataGridView1!查看它的列和行以及它的数据源!使用调试器遵循代码并检查每个步骤的结果。数据集是否已填充?数据表?msgBox输出是什么?msgBox输出绑定源bs是9,对于datagridview,行数是10。MySQL表有9行。您显示的DGV只有2列。您是否有多个DGV?(顺便说一句,第10行是AllowUserToAddress os为true时默认创建的输入行。)我只有1个DGV,在我添加这6列之后,它只显示2列,之前它是完全空白的,我这样做是因为我找到了一些解决方案,这些解决方案说使用designer生成列,并将它们的DataPropertyName更改为表列的名称。您可以通过以下两种方式来实现:让系统来实现,或者自己来实现;设置AutoGenerateColumns=true或false。如果为true,则会清除所有旧列在最后一个msgBox上放置一个断点,并深入dataGridView1!查看它的列和行以及它的数据源!