我正在编写一个将与 SAP Business One 集成的 GUI。我很难确定如何以最佳方式(可靠、快速、简单)加载、编辑和保存数据。
我有两个表,分别称为 Structures 和 StructureRows(不是好名字)。一个结构可以包含其他结构、泛型和细节。结构行包含所有这些项目并具有与之关联的类型。仿制药是具体的占位符,具体是库存中的实际项目。
一个作业将包含作业元数据以及 n 个结构。在编辑作业的屏幕上,您可以添加结构和删除结构以及编辑它们下面的行。例如,如果您将结构 1 添加到作业 1 并且结构 1 包含通用 1,则用户将能够将通用 1 交换为特定。
我了解如何存储数据,但我不知道加载和保存数据的最佳方法是什么......
我看到了一些不同的选择:
- 当有人向作业添加结构时,加载该结构,然后递归加载它下面的任何结构(泛型和细节已经加载)。我会将这一切都放入一个对象模型中,例如 List,每个 Structure 对象都有 List 和 List。当我将更改保存回数据库时,我必须手动循环数据并保留更改。
- 以某种方式将数据加载到 SQL 中的视图中,然后在客户端对数据表/数据集进行分组和排序。将数据绑定到 GridView,以便更改自动反映在数据集中。当你去保存时,SQL/ADO.NET 可以自动处理这个吗?这似乎是理想的解决方案,但我不知道如何实际实施它......
让我失望的部分是能够将结构添加到结构中。如果不是为了这个,我会从 StructureRows 表中选择Specifics 和Generics,然后根据它们所属的结构在GUI 中对它们进行分组。我会将它们放在 DataTable 中并将其绑定到 GridView,这样任何更改都会自动保存到 DataTable 中,然后我可以很容易地转身将它们推送到 SQL...
通过对象模型手动加载和保存数据是我唯一的选择吗?如果没有,你会怎么做?我不确定我是否只是让它变得更复杂,或者这实际上很难用 C#、ADO.NET 和 MS SQL 来完成。