读xml插入数据库

 
  1.         SqlConnection conn = new SqlConnection();
  2.         conn.ConnectionString= System.Configuration.ConfigurationManager.ConnectionStrings["xml_connstring"].ToString();
  3.         conn.Open();
  4.         DataSet ds = new DataSet();
  5.         DataTable dt = new DataTable();
  6.         DataTable dt2 = new DataTable();
  7.         string sql,sql2;
  8.         sql="select orid,nums,price,khid,khxm from orders where 1=2";
  9.         SqlDataAdapter da = new SqlDataAdapter(sql, conn);
  10.         da.Fill(dt);
  11.         sql2 = "select pro_id,pro_name,num,jiage from order_pro where 1=2";
  12.         SqlDataAdapter da2 = new SqlDataAdapter(sql2, conn);
  13.         da2.Fill(dt2);
  14.         SqlCommandBuilder sbd = new SqlCommandBuilder(da);
  15.         SqlCommandBuilder sbd2 = new SqlCommandBuilder(da2);
  16.         XmlDocument xd = new XmlDocument();
  17.         xd.Load(FileUpload1.PostedFile.FileName);
  18.         XmlNodeList nodelist = xd.SelectSingleNode("root").ChildNodes;
  19.         foreach (XmlNode xn in nodelist)
  20.         {
  21.             XmlNodeList nodelist1 = xn.ChildNodes;
  22.             DataRow dr = dt.NewRow();
  23.             for(int i=0;i<nodelist1.Count;i++)
  24.             {
  25.                 XmlElement xe = (XmlElement)nodelist1[i];
  26.                 if (xe.Name == "pro")
  27.                 {
  28.                     XmlNodeList nodelist2 = xe.ChildNodes;
  29.                     DataRow dr2 = dt2.NewRow();
  30.                     foreach (XmlNode xn2 in nodelist2)
  31.                     {
  32.                         XmlElement xe2 = (XmlElement)xn2;
  33.                         dr2[xe2.Name] = xe2.InnerText;
  34.                     }
  35.                     dt2.Rows.Add(dr2);
  36.                 }
  37.                 else
  38.                 {
  39.                     dr[xe.Name] = xe.InnerText;
  40.                     
  41.                 }
  42.             }
  43.             dt.Rows.Add(dr);
  44.             
  45.         }
  46.         GridView1.DataSource = dt.DefaultView;
  47.         GridView1.DataBind();
  48.         GridView2.DataSource = dt2.DefaultView;
  49.         GridView2.DataBind();
  50.         da.Update(dt);
  51.         da2.Update(dt2);
  52.         conn.Close();
  53.     }

 

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <root>
  3.   <ding>
  4.   <orid>0001</orid>
  5.   <nums>2</nums>
  6.   <price>502</price>
  7.   <pro>
  8.     <pro_id>10001</pro_id>
  9.     <pro_name>测试产品</pro_name>
  10.     <num>1</num>
  11.     <jiage>251</jiage>
  12.   </pro>
  13.     <pro>
  14.       <pro_id>10001</pro_id>
  15.       <pro_name>测试产品</pro_name>
  16.       <num>1</num>
  17.       <jiage>251</jiage>
  18.     </pro>
  19.   <khid>1002</khid>
  20.   <khxm>测试</khxm>
  21.   </ding>
  22.   <ding>
  23.     <orid>0001</orid>
  24.     <nums>2</nums>
  25.     <price>502</price>
  26.     <pro>
  27.       <pro_id>12546</pro_id>
  28.       <pro_name>测试产品2</pro_name>
  29.       <num>1</num>
  30.       <jiage>251</jiage>
  31.     </pro>
  32.     <khid>1002</khid>
  33.     <khxm>测试</khxm>
  34.   </ding>
  35. </root>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值