日期:2014-05-17  浏览次数:20710 次

DataSet读取XML
DataSet ds=new DataSet();
ds.ReadXml(@"C:\Users\Administrator\Desktop\xx.xml", XmlReadMode.Auto);
                   
foreach (System.Data.DataTable table in ds.Tables)
{
      foreach (DataRow row in table.Rows)
        {
          foreach (DataColumn col in table.Columns)
           {
               MessageBox.Show(col.ToString ()+row[col].ToString());  //可以输出具体数值
           }
        }
 }
OracleCommandBuilder builder = new OracleCommandBuilder(da);
da.Update(ds);
我现在想利用读取到的XML信息,把它通过DataAdapter.Uptdae(ds)写入到数据库中,应该怎么写,求指导。

------解决方案--------------------
数据库中的表结构要同ds中的一致。
da.SelectCommand.CommandText="select * from "+"数据库中的表名";
OracleCommandBuilder builder = new OracleCommandBuilder(da);
da.Update(ds.Tables[0]);

就可以了。

------解决方案--------------------
每次Update相应表之前,都执行一下da.SelectCommand.CommandText="select * from "+"数据库中的表名";
然后重新new一个CommandBuilder,再Update。
每次Update(ds.Tables[x])中的Tables[x]要同上面代码中的“数据库中的表名”要一致。

另外ds.AcceptChanges();这句不要写,全部更新完毕后再写这句。