我将数据库中的某张表读入DATASET中,然后调用DATASET的方法:WriteXML(path)将数据备份在XML文件中;系统运行一段时间后,我想恢复以前备份在XML文件中的那张表的数据;我又定义一个DATASET对象,然后调用该对象的ReadXML(path)方法,将XML中备份的数据读进DATASET中,
问题一、怎么用DATASET去更新数据库的表???
问题二、如果原来表中某个字段值为空,我备份在XML中时,没有值的那个字段就没有写怎么处理?

解决方案 »

  1.   

    http://singlepine.cnblogs.com/articles/298691.html
      

  2.   

    数据库是Oracle的,DATE类型的在恢复是也需要考虑;怎么用XML读到DATASET后恢复数据库??????????????//
      

  3.   

    把dataSet里的写到数据库里应该没什么问题吧。
      

  4.   

    DataSet dsTableData = new DataSet();
    DataSet dsXMLData = new DataSet();
    string strSQL = "select * from " + strTableName; //建立恢复DATASET
    OleDbDataAdapter DAdapterCom = DB.GetDataAdapter(strSQL); //读取现在表中数据
    DAdapterCom.Fill(dsTableData,strTableName); //将数据加载在DATASET中;
    dsTableData.Tables[0].Rows.Clear(); //清除所有行的数据集
    iRowsCount = dsTableData.Tables[0].Rows.Count;

    //加载XML中备份数据
    dsXMLData.ReadXml(SYNFOLDERNAME + strTableName + ".txt");
    foreach(DataRow drXML in dsXMLData.Tables[0].Rows)
    {
    DataRow drTable= dsTableData.Tables[strTableName].NewRow(); //生成恢复行
    for(int iCols=0; iCols<dsTableData.Tables[strTableName].Columns.Count; iCols++)
    {
    try
    {
    string strColName = dsTableData.Tables[strTableName].Columns[iCols].ColumnName;
    drTable[strColName] = drXML[strColName];
    }
    catch
    {}
    }
    dsTableData.Tables[strTableName].Rows.Add(drTable);
    }
    DAdapterCom.Update(dsTableData, strTableName);
    每次一调用DAdapterCom.Update(dsTableData, strTableName);就报错:什么InsertCommand的问题;我对DataAdapter不是太清楚,不知道我这么更新有什么问题?
      

  5.   

    DataSet dsTableData = new DataSet();
    DataSet dsXMLData = new DataSet();
    string strSQL = "select * from " + strTableName;
    //建立恢复DATASET
    OleDbDataAdapter DAdapterCom = DB.GetDataAdapter(strSQL); //读取现在表中数据
    DAdapterCom.Fill(dsTableData,strTableName); //将数据加载在DATASET中;
    dsTableData.Tables[0].Rows.Clear(); //清除所有行的数据集

    //加载XML中备份数据
    dsXMLData.ReadXml(SYNFOLDERNAME + strTableName + ".txt");
    foreach(DataRow drXML in dsXMLData.Tables[0].Rows)
    {
    DataRow drTable= dsTableData.Tables[strTableName].NewRow(); //生成恢复行
    for(int iCols=0; iCols<dsTableData.Tables[strTableName].Columns.Count; iCols++)
    {
    string strColName = dsTableData.Tables[strTableName].Columns[iCols].ColumnName;
    drTable[strColName] = drXML[strColName];
    }
    dsTableData.Tables[strTableName].Rows.Add(drTable);
    }
    DAdapterCom.Update(dsTableData, strTableName);
    我把刚才程序整理了一下:问题:每次一调用DAdapterCom.Update(dsTableData, strTableName);就报错:什么InsertCommand的问题;我对DataAdapter不是太清楚,不知道我这么更新有什么问题?
      

  6.   

    1。http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
    2。
    //写xml
    thisDataSet.WriteXml(filename,XmlWriteMode.DiffGram );
    //读xml
    thisDataSet.ReadXml(filename,XmlReadMode.DiffGram );