【发布时间】:2016-02-03 09:02:42
【问题描述】:
我正在寻找一种方法来解决我的问题,与之前的问题有关。
我必须在 Datagridview 中管理不同的付款方式。
用户(例如收银员)必须在服务结束时检查他们所有的钱。
在父表单中,我显示付款方式名称、来自其他数据库的自动金额、两个空列和一个带有“详细信息”按钮的列。
最初,父窗体中的 datagridview 如下所示:
PAYMENT | QTY | AUTOMATIC | MANUAL | DIFF. | DETAILS |
_____________|_________|_____________|__________|__________|___________|
CREDIT CARD | 2 | 46.80 | | | [DETAILS] |
CHECK | 1 | 25.65 | | | [DETAILS] |
BANK TRANSFER| 1 | 150.25 | | | [DETAILS] |
当用户单击详细信息按钮时,我会显示一个带有其他 datagridview 的子表单,其中包含付款方式的详细信息。我在父表单中加载这样的表单:
var details = new FrmDetails("FormName", "IdOfPaymentMethod");
details.ShowDialog();
以信用卡为例,我在子窗体中得到一个 datagridview,如下所示:
DATE/HOUR | TICKET NUMBER | AMOUNT | CHECK |
_____________________|_______________|__________|_________|
01/11/2015 - 08:23 | 138170 | 12.90 | |
01/11/2015 - 09:45 | 138191 | 33.90 | v |
这是用户预先选择的日期的两次信用卡付款。两者的总和是您可以在父表单的“自动”列中看到的。最后一列“CHECK”包含复选框,用户检查他们是否有付款。
在我的示例中,用户仅检查带有 33.90 的第二行,而不检查另一行。 当他们关闭此详细信息表单时,父 datagridview 更新如下:
PAYMENT | QTY | AUTOMATIC | MANUAL | DIFF. | DETAILS |
_____________|_________|_____________|__________|__________|___________|
CREDIT CARD | 2 | 46.80 | 33.90 | -12.90 | [DETAILS] |
CHECK | 1 | 25.65 | | | [DETAILS] |
BANK TRANSFER| 1 | 150.25 | | | [DETAILS] |
这是应用程序的简单操作。 问题是我必须将每个 datagridview “详细信息”保存在 SQL 数据库(SQL Server)中。用户必须在这些付款之前输入其他信息,因此我认为的解决方案是将以前的数据保存在表“ENTRIES”中,然后检索 ID 最大值,并使用链接 ID_ENTRY 作为外键保存每个 datagridview“详细信息”。 我可以使用单个datagridview“详细信息”来做到这一点,但是当我按下父表单上的其他详细信息按钮时,我会丢失所有选中/取消选中。
有没有办法让每个 datagridview 的“细节”保持到最后的记录?
我希望我的信息清晰而全面。
【问题讨论】:
标签: c# sql-server dynamic datagridview