C#将XML导入到ACCESS数据库

前面曾写过一篇 利用 XPATH 进行XML 查找的文章,今天写一个用普通的方式操作XML文件的例子,也是应BAIDU 知道的一位网友的需求

假设有如下的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<users>
  <user code="lm">
    <name>黎明</name>
    <sex>male</sex>
    <age>28</age>
  </user>
  <user code="sq">
    <name>舒淇</name>
    <sex>female</sex>
    <age>27</age>
  </user>
</users>

要将上面的XML内容,导入的一个ACCESS数据库中的userinfo表,ACCESS的userinfo表的结构如下:

 image

代码如下:

//请将ACCESS数据库的路径替换为实际的路径
using (OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source=d:\demo.mdb"))
{
    cn.Open();
    using (OleDbCommand cmd = new OleDbCommand())
    {
        cmd.Connection = cn;
        cmd.CommandType = CommandType.Text;
        
        XmlDocument xml = new XmlDocument();
        //请将XML的路径替换为实际的路径
        xml.Load(@"d:\demo.xml");

        //取得所有的user
        XmlNodeList xn = xml.GetElementsByTagName("user");

        //遍历所有的user
        foreach (XmlElement xe in xn)
        {
            cmd.CommandText = string.Format("INSERT INTO userinfo([UserCode],[UserName],[UserSex],[UserAge]) VALUES ('{0}', '{1}', '{2}', {3})",
            xe.GetAttribute("code"),    //取得code
            xe.ChildNodes[0].InnerText, //取得Name
            xe.ChildNodes[1].InnerText, //取得Sex
            xe.ChildNodes[2].InnerText  //取得Age
            );

            //插入数据
            cmd.ExecuteNonQuery();
        }
    }
}
posted @ 2009-02-26 11:49  三角猫  阅读(1237)  评论(0编辑  收藏  举报