问题描述
今晚我一直为这样一个问题所困扰:自己编写一个XML文件,其中有两张表,这两张表之间创建有联系(relation)。我想在程序运行期间加载这个xml文件,把它读入到DataSet中,然后通过对控件的数据绑定,把这两张表的关系显示出来。整个过程并不复杂,我的主要代码如下:DataSetds=newDataSet();ds.Tables.Add(newDataTable("graph"));//添加graph表ds.Tables["graph"].Columns.Add("graph_Id",typeof(System.Int32));DataRowobjDataRow=ds.Tables["graph"].NewRow();//为graph表的graph_Id赋值objDataRow["graph_Id"]=0;ds.Tables["graph"].Rows.Add(objDataRow);ds.Tables.Add(newDataTable("machine-shelf"));//添加machine-shelf表ds.Tables["machine-shelf"].Columns.Add("graph_Id",typeof(System.Int32));//为machine-shelf表的graph_Id赋值objDataRow=ds.Tables["machine-shelf"].NewRow();objDataRow["graph_Id"]=0;ds.Relations.Add("machine-shelf",//添加两个表之间的关系ds.Tables["graph"].Columns["graph_Id"],ds.Tables["machine-shelf"].Columns["graph_Id"]);ds.WriteXml(@"e:/example.xml");ds.Dispose();ds=newDataSet();ds.ReadXml(@"e:/example.xml");MessageBox.Show(ds.Relations.Count.ToString());问题就出在上面最后的MessageBox.Show()那里,在这里显示出来的ds.Relations.Count竟然为0!也就是说DataSet没有将Relations正确写入XML文件中的关系。可是我在查看MSDN中DataSet.WriteXml()的文档时,却说可以写入XML文件的表、关系、约束定义等,请问问题出在哪里?
解决方案
解决方案二:
说错了,不是"在程序运行期间加载这个xml文件,把它读入到DataSet中,然后通过对控件的数据绑定,把这两张表的关系显示出来。"应该是将ds写入xml文件中