我正在使用 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/