如何在 C# 中将 datagridiew 中未包含的其他数据库值显示为另一种形式? [关闭]
Posted
技术标签:
【中文标题】如何在 C# 中将 datagridiew 中未包含的其他数据库值显示为另一种形式? [关闭]【英文标题】:How do I display other database values not included in the datagridiew into another form in C#? [closed] 【发布时间】:2019-05-01 11:53:50 【问题描述】:我有一个数据网格视图,其中的行仅显示员工的姓名和 ID。当我双击 datagridview 中的数据时,将显示另一个表单,显示该员工的数据和 datagridview 中未包含的其他值。我该怎么做?谢谢。
【问题讨论】:
获取网格中选中行的用户ID。在创建/打开新表单时将该 ID 传递给它。在查询中使用该 ID 从数据库中选择其余数据。将结果绑定到您的网格。这是一种常见的摘要/详细信息视图模式。到目前为止,您研究或尝试了什么?您是否面临特定问题,或者您还没有研究过? 我看了,但对如何构建它感到困惑。 究竟是什么让您感到困惑?我在评论中概述了几个步骤。哪一个是问题?具体有什么不明白的?如果您单独研究每个步骤,您应该会发现它非常简单且容易发现。然后你把所有小的、更容易理解的部分放在一起来制作解决方案。 (从本质上讲,这就是编程的秘密。) 【参考方案1】:如果我没有误解,您正在填充 DataGridView,从您的员工表中仅选择 ID 和名称。
如果您想要其他不包含在该 DataGridView 中的值,请通过双击单元格以另一种形式添加一个名为 dataGridViewName_CellDoubleClick
的事件。
在事件中,您必须检索已点击的员工 ID:
int id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value);
这样做是在选择已单击行的 Cell[0](在我的情况下为员工 ID)。
将 Id 传递给另一个表单很简单:
要显示其他值的表单:
int EmployeeId;
public Form2(int employeeId)
EmployeeId = employeeId;
InitializeComponent();
获取Id后双击事件内部:
Form2 form = new Form2(id);
form.Show();
一旦有了员工的 ID,就可以从数据库中获取其他值。
希望这会有所帮助。
【讨论】:
你能告诉我如何构建它吗?对不起,我是新手 我的意思是如何使用检索到的 id? 对不起,迟到的评论!检索到 id 后,您可以简单地将其作为参数传递以创建新表单以显示其他值。这样做,您必须将参数添加到表单的构造函数中(查看答案中的公共 Form2 代码) 我明白了,谢谢。【参考方案2】:DataGridViewRow
有一个名为 Tag
的属性,您可以使用它来存储任何对象 - 您可以使用它来存储 Employee 的完整属性集合,并在行为双击
【讨论】:
以上是关于如何在 C# 中将 datagridiew 中未包含的其他数据库值显示为另一种形式? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章