【问题标题】:Import an XML file and insert data into SQLite database in c#在 C# 中导入 XML 文件并将数据插入 SQLite 数据库
【发布时间】:2014-01-12 08:46:52
【问题描述】:

我通过在 c#.net 中导出我的 SQLite 数据库生成了一个 XML 文件。我生成的 XML 类似于-

<root>
   <name1>
      <names>
         <id>5</id>           
         <from>Germany</from>
         <to>France</to>
         <through>
            <via>
                 <id>7</id>
                 <routeNo>5<routeNo>
                 <route>Vienna<route>
             </via>
         </through>           
     </names>
     <names>
         <id>10</id>           
         <from>US</from>
         <to>Canada</to>
         <through>
            <via>
                 <id>8</id>
                 <routeNo>10<routeNo>
                 <route>Mexico<route>
             </via>
         </through>           
     </names>
   </name1>
</root>

我正在尝试导入此 XML 文件并将所有数据重新插入一个空的 SQLite 数据库。我需要在插入 SQLite 数据库之前验证内容。我从现有的 XML 文件创建了一个 XSD 文件。我在这里使用了 NDbUnit 库。我将数据从 XML 导入 SQLite 数据库的代码如下 -

string connectionString = "Data Source=emptyDB.sqlite;Version=3;New=True;Compress=True;";
        NDbUnit.Core.INDbUnitTest Database = new NDbUnit.Core.SqlClient.SqlDbUnitTest(connectionString);

        Database.ReadXmlSchema("myFlatXml.xsd");
        Database.ReadXml("myFlatXml.xml");    

        Database.PerformDbOperation(NDbUnit.Core.DbOperationFlag.CleanInsertIdentity);

我使用了从 XML 文件生成的 XSD 文件,但似乎我必须从我的 sqlite 数据库创建 XSD。问题是 sqlite manager 不支持将数据库导出到 XSD 文件。此外,我找不到任何使用 NDbUnit 创建 XSD 的明确文档。有人可以帮忙吗?

【问题讨论】:

  • xml格式有点奇怪,你希望xml如何映射到SQLite?目标表格式,哪个标签将存储在哪个列中?
  • 我也在 c# 中从 SQLIte 数据库生成了这个 XML。现在我需要将这些数据从 XML 取回 SQLite(空数据库)。是的,这个 XML 有点复杂。我是 C# 的新手。你能给我一些提示吗?
  • 如果可能,尝试发布您的 SQLite 表架构以及用于从 SQLite 表生成该 xml 的 c# 代码。根据您用来生成 xml 的 -reversed- 逻辑来编码将 xml 恢复回数据库的逻辑可能比从头开始编码更容易。仅从目前的信息来看,我无能为力
  • 我已经编辑了帖子并给出了将数据从 sqlite 导出到 xml 的代码。足以理解我的问题吗?我非常需要解决它。请帮助我。
  • 不清楚代码中的root 变量指的是什么。您能否在声明和初始化它的位置发布代码,最好首先包括用于从 SQLite 加载数据的位?

标签: c# .net xml sqlite ndbunit


【解决方案1】:

NDbUnit 框架可以满足您的需求。所以没必要弄脏你的手。 也可以通过 NuGet 获得。

【讨论】:

  • 虽然 NDbUnit 是在考虑单元测试的情况下制作的,但它绝不仅限于此。您也可以轻松地将它用于您的场景。
  • 你能给我看一些例子吗?我没有太多时间,所以我打扰你了:(
  • 我有时间做你的工作吗?我为你指明了正确的方向,剩下的就看你了……
  • 好的,再次。我需要将 XML 数据取回我的空数据库。在插入数据之前,我需要检查这些数据。我正在遵循这些步骤-code.google.com/p/ndbunit/wiki/QuickStartGuide。这是你推荐我遵循的吗?
  • 是的。除了快速入门处理测试。但它可以很好地全面了解这一切是如何运作的。
猜你喜欢
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2014-01-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 2018-07-15
相关资源
最近更新 更多