c# - 从 xml 文件中检索数据并插入到数据库表中

标签 c# xml sql-server-2000

我正在使用 c# .net 1.1 和 SQL Server 2000....

我想从 xml 文件中检索数据并将该数据存储到数据库表中。

XML 文件:

<information>
  <data>
    <id="1"></id>
    <name>peter</name>
    <age>25</age>
  </data>
</information>

我的数据库表是

id int,
name varchar(100),
age int

最佳答案

首先 - 您的 XML 无效:

<data>
    <id="1"></id>

这不是一个有效的 XML 结构——它应该是什么??

数据节点上的“ID”属性? <data id="1">

里面有值的“ID”元素? <data><id>1</id>

有很多方法可以做到这一点——完全取决于您的情况:

  • 创建 XML 架构,以便您可以将此 XML 反序列化为 .NET 对象 - 如果您要导入大量此类文件,效果最佳

  • 如果您使用的是 .NET 3.5 及更高版本,请使用 Linq-to-XML

  • 使用传统的 XML 文档处理

如果您使用传统的 XML 文档处理,如果您的文件相对较小(因为它将整个文件加载到内存中),这种方法效果最好。在这种情况下,您可以执行以下操作:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("yourfilename.xml");

XmlNodeList dataNodes = xmlDoc.SelectNodes("/information/data");

foreach(XmlNode node in dataNodes)
{
    int id = Convert.ToInt32(node.SelectSingleNode("id").InnerText);
    string name = node.SelectSingleNode("name").InnerText;
    int age = Convert.ToInt32(node.SelectSingleNode("age").InnerText);

    // insert into database, e.g. using SqlCommand or whatever
}

至于插入到数据库中——您可以使用存储过程,或者在 SqlCommand 中使用 SQL 语句- 完全取决于你。一旦您获得了这三位信息(id、姓名、年龄),您就可以随心所欲地处理这些信息。

还有一句警告:这包括没有错误检查!如果 <data>节点不完整或子节点名称错误,这将导致崩溃——您还需要提供一些错误检查! (为简单起见省略)

马克

关于c# - 从 xml 文件中检索数据并插入到数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1490690/

相关文章:

C#:如何在计时期间停止计时器

java - log4j2如何使用多个配置文件

.net - 如何在.NET 中对多个 SqlConnection 使用单个 SqlTransaction?

sql-server - 我可以恢复错误存储在 varchar 字段中的国际字符吗?

c# - 跟踪大型 XML 文件的加载进度

c# - Empty IQueryable 在 Empty 时返回什么?

c# - 如何从云 Web 服务中访问文件?

java - XML (XSL) 错误 — 将 HTML 转换为 PDF (Java)

java - 用于生成 XML 的 GUI

sql-server - sql性能问题