C# 从一个数据库结构到另一个数据库结构的逻辑迁移

C# 从一个数据库结构到另一个数据库结构的逻辑迁移,c#,sql-server-ce,C#,Sql Server Ce,我目前正在用C#创建一个SQL Server CE数据库应用程序,我有一些逻辑问题,我想也许有人可以帮我解决 目标:能够向最终用户提供一个XML文件,它告诉程序使用提供的结构创建一组新表(带有tmp\ucode>前缀的新表)。然后,需要将现有数据从旧表移动到新表(使用新结构),然后删除旧表 我写了太多的代码,无法粘贴到这里,所以我将把它分解为逻辑步骤(因为这是一个逻辑问题,而不是编译器问题) 从提供的XML文件中获取新的数据库结构,读入datatable[DONE] 动态连接SQL查询,以创建带

我目前正在用C#创建一个SQL Server CE数据库应用程序,我有一些逻辑问题,我想也许有人可以帮我解决

目标:能够向最终用户提供一个XML文件,它告诉程序使用提供的结构创建一组新表(带有
tmp\ucode>前缀的新表)。然后,需要将现有数据从旧表移动到新表(使用新结构),然后删除旧表

我写了太多的代码,无法粘贴到这里,所以我将把它分解为逻辑步骤(因为这是一个逻辑问题,而不是编译器问题)

  • 从提供的XML文件中获取新的数据库结构,读入datatable[DONE]

  • 动态连接SQL查询,以创建带有
    tmp\u
    前缀[DONE]的新表

  • 将新结构与旧结构进行比较,在[未完成]之间移动相关数据

  • 我对第3步的逻辑方法有问题。基本上,我需要将数据从旧结构移动到新结构-忽略新列集中未出现的旧列,并为旧列列表中未出现的新列输入空白数据。我需要坚持新的列模式,如数据类型、最大长度等。这让我很头疼,因为我对C#非常陌生。有人认为这是最好的方法吗


    提前谢谢

    有几种方法。您基本上希望实现的是逐列比较结构(如果您可以依赖它们的相似性),并根据比较结果传递数据。假设你有数据,你是如何“移动相关数据”的?@DeeMac我还没有移动任何数据。在开始编码之前,我仍然在与逻辑作斗争。任何对此进行编码的尝试都失败了;)我最初的想法是基于多个if语句动态构造一个INSERT语句,然后运行该语句,并在所有数据移动完毕后删除旧表。你把它分解成3个步骤,做得很好。现在,将第三步进一步分解,使您的问题更易于处理。顺便说一句,我无意让人觉得我是个高人一等的人。将步骤3分解为“获取第一个db的结构,获取第二个db的结构,比较每列并将所有公共列分配给一个列表,使用该列表确定将数据集中的哪些数据插入第二个db,然后插入”。基于此-针对你自己无法完成的每一项任务,提出相关问题。@DeeMac不要担心资助我-我是C#的新手。感谢这些指针,我将进一步分解问题并返回。另一个指针,类似于这样的任务不要太过程序化-例如,首先匹配表格-我通常使用术语
    (用于比较类似的内容)。因此,db-s只在左侧
    只在右侧
    匹配表
    。然后,对于匹配表,对字段执行相同的操作。您最终将整个过程分解为
    delete
    add
    -和
    same
    -非常简单,但很有帮助。这件事我已经做了好几次了。