我将数据库中的某张表读入DATASET中,然后调用DATASET的方法:WriteXML(path)将数据备份在XML文件中;系统运行一段时间后,我想恢复以前备份在XML文件中的那张表的数据;我又定义一个DATASET对象,然后调用该对象的ReadXML(path)方法,将XML中备份的数据读进DATASET中,
问题一、怎么用DATASET去更新数据库的表???
问题二、如果原来表中某个字段值为空,我备份在XML中时,没有值的那个字段就没有写怎么处理?
问题一、怎么用DATASET去更新数据库的表???
问题二、如果原来表中某个字段值为空,我备份在XML中时,没有值的那个字段就没有写怎么处理?
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不是太清楚,不知道我这么更新有什么问题?
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不是太清楚,不知道我这么更新有什么问题?
2。
//写xml
thisDataSet.WriteXml(filename,XmlWriteMode.DiffGram );
//读xml
thisDataSet.ReadXml(filename,XmlReadMode.DiffGram );