如何将多个数据库值返回到文本框?

Posted

技术标签:

【中文标题】如何将多个数据库值返回到文本框?【英文标题】:How to return multiple database values to textboxes? 【发布时间】:2017-07-13 02:29:08 【问题描述】:

我目前有一个包含多个值的测试数据库。在下面的示例中,它是从 SELECT 查询返回的数据。

  Barcode      Product number   Pack_size
95587056212     0100-505621     1.000000
100955870562    0100-505621     0.000000
10095587056219  0100-505621     0.000000
10095587556214  0100-505621     12.000000

我想要做的是尝试将具有多个实例的值返回到不同的文本框。为了进一步解释,假设我有一个文本框,我运行一个查询:

SELECT * FROM bdorf where product number = '0100-505621' 

它会在 SQL 环境中返回上述数据,因为存在多个实例,因为存在不同的“条形码”和“Pack_Sizes”,但由于它与我的 Winforms c# 应用程序有关,我不确定如何执行此操作。通常会运行该查询,我会让它说返回一个值到一个文本框,但我们知道它只会提取一个数据,因为它只指向一个文本框。给出一个真实的场景。假设我输入了与上面相同的产品编号,即“0100-505621”,正如我之前在上面的示例中使用的那样。上面我们看到它有 3 个实例,但在我下面的应用程序中,你会看到它只返回一个,因为它只指向一个文本框:

我仍然想知道的是,无论输入的产品编号如何,我如何让它指向多个文本框?

我认为最多有 5 个可能的实例,因为这是我的测试数据库中的数据。所以我想从 5 个文本框开始,然后将可能的多个实例绑定到每个文本框,任何错过的人(比如说 3 个实例)都会向这些文本框返回 0。我不确定我是否正确地考虑了这一点。欢迎提出建议

【问题讨论】:

@AdamNewman - 如果您希望数据以类似网格的方式显示(从您的问题中不清楚),请使用 grid. Grid 内置了编辑数据的功能。 @AdamNewman 您打算使用内部联接将数据返回到上面数据中的字段吗?例如,将具有相似产品字段的产品字段与另一个包含描述字段的表连接起来?如果是这种情况,我可以理解为什么您宁愿回避网格视图。按照您建议的方式进行操作会更灵活。如果我错了,也许有人可以纠正我 @Jevon 是的!这正是我想说的。很高兴有人从我的帖子中了解到这一点。我只是想要一种将字段返回到文本框的方法。就像我将一个实例绑定到一个文本框一样。就像如果我得到一个名为“苹果”的描述,那么我会将其发送到文本框。如果我得到苹果、香蕉、樱桃,那么我将能够将这三个投射到这三个文本框,而其他两个文本框将保持为空。再举一个例子,拉取 4 个不同的实例,然后它会转到这 4 个文本框,而第 5 个文本框将保持为空 @AdamNewman 我明白了。我对这个线程非常感兴趣。我希望有人能解释一下 @Alex 让我看看我是否可以分解它。基本上他的意思是,当他输入产品编号时(如屏幕截图所示),他希望将数据库中的相应值传递给文本框。例如,假设我们有一个表,其标题为:gender,amount,total,在这些列下方您有数据:male,500,340. 当您在字段中输入“男性”时,旁边带有数据的相应列将传递给文本框。它基本上是在表中吐出彼此相邻的相应值 【参考方案1】:

为什么不使用数据网格呢?这将使您过滤多个结果。这会特别好,因为我猜您对将传递多少数据并不清楚。所以创建你的数据网格。然后添加文本框以编辑该数据网格的值。因为最终它只是您真正更新的数据库值。

【讨论】:

我做过类似的事情。谢谢你。将标记为答案,因为这是最接近我的解决方案。【参考方案2】:

您可以尝试使用 GridView 并列出数据库中的所有项目,并在顶部添加一些文本框作为过滤器,然后搜索您想要过滤的各个列。如果您想通过更新、插入删除的方式编辑数据,那么您可以在该 GridView 下方添加一些复选框,该复选框也有标记为“插入、更新、删除”的按钮,这将有必要的查询指向您的数据库关于什么操作采取。我对 GridView 不是很了解,但我认为这在某种程度上可以奏效。

【讨论】:

我明白这一点,感谢您的建议,但我不使用一张桌子,我必须绑定 3 张桌子以获得一些额外的数据。我正在考虑加入数据并创建一个完全不同的表,但这不是一个选项,因为正在使用的数据不应该在另一个表中创建。我相信这是我目前的问题。不得不绑三张桌子的问题。通过我的研究,我在 GridView 和内部连接方面没有看到任何可行的方法 @AdamNewman - RE:“捆绑三张桌子”。一种方法(有很多方法)是在数据库中创建一个视图来连接所有必要的表。然后您可以插入、更新删除此视图。有限制:主要是插入/更新的数据只能属于一张表。您应该能够在 C# 中围绕它编写代码,或者您可以在视图中创建 INSTEAD OF TRIGGER。在 C# 中可能有更好的替代方案(我已经有几年没有关注 C# 的发展了) 请参阅:***.com/questions/7281054/… 了解视图。

以上是关于如何将多个数据库值返回到文本框?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击列表框行项将搜索结果返回到文本框

如何将数据库中的多行显示到多个文本框?

如何在文本框中显示数据集的多个结果集

使用ListView数据填充多个TextBox

在 C# 中,如何将文本框、复选框等的值保存在一个文件中?

AS3 将多个文本框数据保存并加载到本地文件