DataAdapter有个Fill方法,可以填充DataSet,DataSet有个ReadXml方法,可以读取XML来填充。
在CSDN上看到有人在问ReadXml与Fill的运行顺序为什么不能互换?觉得有些有趣,做了一番粗浅的观察,发现
1。
DataSet objDataSet = new DataSet();
objDataSet.ReadXml( strXmlFile );
–>生成新的表
objDataAdapter.Fill( objDataSet, “tblProducts” );
–>如果这里的东西与前面生成的表的Schema以及表名一样的话,会填充到前面一个表内,否则会另生成一个表:
2。
DataSet objDataSet = new DataSet();
objDataAdapter.Fill( objDataSet, “tblProducts” );
–>生成新的表tblProducts
objDataSet.ReadXml( strXmlFile );
–>
a. 如果你的XML文件里有Schema,并且如果这里的东西与前面生成的表的Schema以及表名一样的话,会填充到前面一个表内,否则会生成一个新表
b. 假如没有Schema,而且DataSet推出的Schema与前面表相同的话,并且表名一样的话,会填充到前面一个表内,如果表名不同,不会读数据进来!即,ReadXml不起作用
c.假如没有Schema,而且DataSet推出的Schema与前面表格不同的话,不会读数据进来!即,ReadXml不起作用
还发现,好像XML文件里的根节点名与现有DataSet名是否相同是无关紧要的
建议大家别这么用,你会搞糊涂的