论坛首页 编程语言技术论坛

C#将XML导入到ACCESS数据库

浏览 2515 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-26   最后修改:2009-02-26

 

前面曾写过一篇 利用 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();
        }
    }
}
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics