【发布时间】:2023-03-17 20:35:01
【问题描述】:
.net 中是否有任何数据导出框架或其他东西。我需要一个工具包来将旧版/旧版应用程序中的旧版和数据导出到正在开发的新应用程序中,大约有三个类似的系统。为了让您了解三个有员工表。是否有任何框架或 dsl 工具可以做到这一点?或者我必须想出所有的代码?当您有客户想要迁移到新产品时,您会怎么做?
【问题讨论】:
标签: c# frameworks migration export
.net 中是否有任何数据导出框架或其他东西。我需要一个工具包来将旧版/旧版应用程序中的旧版和数据导出到正在开发的新应用程序中,大约有三个类似的系统。为了让您了解三个有员工表。是否有任何框架或 dsl 工具可以做到这一点?或者我必须想出所有的代码?当您有客户想要迁移到新产品时,您会怎么做?
【问题讨论】:
标签: c# frameworks migration export
从 NN 工具迁移到我们的应用程序后,我可以告诉您,没有“简单的方法”可以做到这一点。每个软件都遵循自己的内部数据库结构,并且永远与您在设计自己的软件时遵循的相同。
考虑到这一点,最复杂的任务通常分为两部分:
1) 确定什么 和如何 是存储在遗留系统中的数据。你知道表 PAXNOST 意味着 Patient_Note_Statistic 或类似的东西......一旦你知道数据在哪里(在一个或多个表中)......
2) 导出并清理它:通常情况下,在 SQL Server 中使用导入向导会导致由于“错误”而无法导入数据。数据截断、不应存在的 Null 值、格式不正确的日期(例如 01/02/1009)等等。此类问题因迁移而异,但这完全取决于旧系统强制执行(或不执行!)的约束。
如果您设法完成上述所有操作,则可以导入您选择的数据库(我假设是 SQL 服务器),然后,当所有数据都在同一个数据库中并且“奇怪的东西”数量最少时,您可以继续使用 T-SQL(或任何其他更自动化的过程,我使用我保存的 T-SQL 脚本,如果需要,可以重复使用),从 OldTables -> 新表中移动数据。
始终保存您执行的每个脚本。假设您可能必须重新执行所有操作。
总是在“重要步骤”之后备份你的数据库,这样你就可以恢复 -> 修复 -> 如果需要,可以重新做。
请记住,您将几乎总是必须手动调整某些事情(即:update xxx set yyy = '' where zzz = null; 以及类似的事情以确保约束正常。同样,这一切都取决于源数据的质量。总是假设最坏的情况。
有一个好的文本编辑器,您可以在其中执行快速搜索/正则表达式,如果您使用 Windows / Unix 的混合,请注意行尾和字段分隔符(如果您使用 ASCII 文件,我经常这样做);如果你有这些工具,也可以使用 MS ACCESS 或 MS EXCEL 进行快速表格导入/清理(Excel 每张表格不能超过 65535 行,请记住,使用 Access)。
数据传输对象 (DTO) 很不错,但根据任务,有时它会变成 PITA。
祝你好运。
【讨论】:
如果您的数据库架构保持不变,因此制作更多遗留系统的副本,您可以使用 Visual Studio,它有一个数据菜单项,您可以在该菜单项下启动架构比较或数据比较以传输它们从一台服务器到另一台服务器。
Grz,克里斯。
【讨论】: