如何将DataGridView绑定到SqlDataReader

4

请问有人能帮我解决这个代码问题吗?我正在尝试将数据绑定到DataGridView上。查询在SQL Server中返回了值,但是DataGridView没有绑定任何值...

     private void CheckMembers()
     {
        try
        {
            string query = "Select id, id-no, status From Members Where Head=@Head";

            sqlCommand = new SqlCommand(query, sqlConnection);
            sqlConnection.Open();
            sqlCommand.Parameters.AddWithValue("@Head", "2288885858");
            sqlDataReader = sqlCommand.ExecuteReader();

            if (sqlDataReader.HasRows)
            {
                fmGview.Visible = true;
                DataTable dt = new DataTable();
                dt.Load(sqlDataReader);
                MessageBox.Show(dt.ToString());
                fmGview.DataSource = dt;
            }
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.ToString(), "Exception in CheckMembers");
        }
        finally
        {
            CheckConnectionStatus();
        }
   }

enter image description here


3
我会尽力进行翻译,请问原文的语境是什么呢? - Sebi
1
我测试了你的代码,它运行良好。可能是你在网格上的字段名有拼写错误或其他问题。 - Badiparmagi
1
如果您仔细检查后发现“dt”不为空,请同时发布您的UI代码。 DataGridView 不属于 wpf。 - ASh
1
@MistrMowgli,我不知道。你没有展示任何UI代码。 - ASh
1
@EdPlunkett,dt中行的计数器为3 - Mistr Mowgli
显示剩余11条评论
1个回答

5

在“Columns”设计器中为每个列设置“DataPropertyName”。您可以通过将鼠标指针放在“DataPropertyName”行的右侧单元格上,这里显示为(none),然后单击左键来完成此操作。选择显示“(none)”文本的内容,并键入您想要在该DataGridView列中显示的数据库字段名称。


点击框中并输入字段名称。在你想要为“id”的那个字段中,输入“id”。 - 15ee8f99-57ff-4f92-890c-b56153
它只开始插入空行。 - Mistr Mowgli
@MistrMowgli 你在那个框里输入了什么? - 15ee8f99-57ff-4f92-890c-b56153
1
我不这么认为。这段代码展示了如何将DataTable的更改发送回SQL数据库 - 15ee8f99-57ff-4f92-890c-b56153
1
感谢您的帮助...非常感激。 - Mistr Mowgli
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接