我没用过,好像得自己按照读的xml 格式写吧。

解决方案 »

  1.   


    两个按钮,读和写XML
    private void button1_Click(object sender, System.EventArgs e)
    {
    DataSet ds = new DataSet();
    OpenFileDialog openDialog = new OpenFileDialog();
    openDialog.InitialDirectory = @"c:\";
    openDialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
    openDialog.FilterIndex = 1;
    openDialog.RestoreDirectory = true;
    if(openDialog.ShowDialog() == DialogResult.OK)
    {
    ds2 = new DataSet();

    ds.ReadXml(openDialog.FileName,XmlReadMode.InferSchema);

    ds2 = ds;

       //dataGrid1.SetDataBinding(ds,"book");//SetDataBinding()的DataSource参数设置为ds,
                                         //但仅限于特定的含BOOK表例子,
                                         //显示从第一个BOOK表开始
     
    dataGrid1.DataSource = ds.Tables[0]; //这种方法可以打开任意XML数据,
                                         //显示从第一个表开始

    //dataGrid1.DataSource = ds; //这种方法可以打开任意XML数据,显示从根开始
                                 

    }//用了一个ds2来保存最初的ds,达到即从表开始显示,又能用ds.WriteXml();
    } private void button2_Click(object sender, System.EventArgs e)
    {
    DataSet ds = new DataSet();
    //ds = (DataSet)dataGrid1.DataSource;//dataGrid1的DataSource属性返回一个object对象
                                         //必须显式转换类型,从表开始显示讲无法转换 ds =ds2; SaveFileDialog saveDialog = new SaveFileDialog();
    saveDialog.InitialDirectory = @"d:\";
    saveDialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
    saveDialog.FilterIndex = 1;
    saveDialog.RestoreDirectory = true;
    if(saveDialog.ShowDialog() == DialogResult.OK)
    {
    ds.WriteXml(saveDialog.FileName,XmlWriteMode.IgnoreSchema);
    }
    }
      

  2.   

    dataGrid1.DataSource = myDataSet.Table[0].DefaultView                                              wish u good luck
                                                       Greatsft