我想知道使用链接到数据表的组合(联接)的数据网格控件的最佳方法,即既允许显示又可以在基础表中创建新行并删除。
datagrid似乎提供了后者的功能,但是我还没有找到一种除仅显示在一个网格上并提供特定的单独编辑创建和删除功能之外的其他方法而感到满意的方法。
为了说明起见,假设数据库包含:
客户表
* 客户ID
* 顾客姓名
订购表
* 客户ID
* OrderLineItem
* OrderLineQuanity
我想失去CustomerID以便显示,但希望能够创建一个新客户并删除现有客户,也许需要一个确认对话框。
最佳答案
CSharpAtl是正确的,使用主从控件。 http://msdn.microsoft.com/en-us/library/y8c0cxey.aspx是在WinForm应用程序中使用一个示例。
WinForm DataGrids支持添加,编辑和删除主记录和明细记录。关于您的问题,如果更改明细记录以使其与新的主记录匹配,会发生什么情况;这是不可能的。通过设计明细行仅包含与主记录匹配的记录,您不能(例如)将订单更改为属于新客户,因为明细行不包含任何客户信息。
如果要将明细行移动到另一个母版,则必须为新的母版创建一个新的明细行,从旧的明细行中复制数据,然后删除旧的明细行。如果您有雄心壮志,则可以支持“剪切和粘贴”或“拖放细节”行,但在内部必须创建/复制/删除。
关于c# - 来自SQL Server的Datagrid使用情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/134785/