如何在 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 中未包含的其他数据库值显示为另一种形式? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 iOS 应用更新保存 SQLite 数据

为啥在 C# 的字符串中未检测到“空白”?

如何在C#中将字符串转换为整数

删除 C# 二进制文件中未使用的预处理器符号

如何在c#中将对象转换为数组? [关闭]

如何在 C# 中将结构转换为字节数组?