就是先从数据库读出数据,写入XML,然后在从XML读出
            System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection("Provider=SQLOLEDB.1;Password='';Persist Security Info=True;User ID=sa;Initial Catalog=Cy;Data Source=.");
            System.Data.OleDb.OleDbDataAdapter ap = new System.Data.OleDb.OleDbDataAdapter("select * from tOperators", con);
            DataSet ds = new DataSet();
            ap.Fill(ds);
            MessageBox.Show("DATA IS OPEN");
            try //==========写XML
            {
                ds.AcceptChanges();
                System.Xml.XmlTextWriter xmlWriter0 =
                    new System.Xml.XmlTextWriter("tOperator.xml", System.Text.Encoding.Unicode);
                ds.WriteXml(xmlWriter0, XmlWriteMode.WriteSchema);
                ds.WriteXmlSchema( "tOperator.xsd");                ds.Clear();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message.ToString());
                return;
            }            MessageBox.Show("xml is writed"); 
          //========读XML文件
            DataSet ds1 = new DataSet();
            System.IO.FileStream FS;
            try
            {
                FS = new System.IO.FileStream("tOperator.xml", FileMode.OpenOrCreate);
//出错,错误信息是此文件被打开
                System.Xml.XmlTextReader xmlReader = new XmlTextReader(FS);
                ds1.ReadXmlSchema("tOperator.xsd");
                ds1.ReadXml(xmlReader, XmlReadMode.ReadSchema);//,XmlReadMode.ReadSchema
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message.ToString());
            }
            this.dataGridView1.DataSource = ds.Tables[0];

解决方案 »

  1.   

    try //==========写XML
                {
                    ds.AcceptChanges();
                    System.Xml.XmlTextWriter xmlWriter0 =
                        new System.Xml.XmlTextWriter("tOperator.xml", System.Text.Encoding.Unicode);
                    ds.WriteXml(xmlWriter0, XmlWriteMode.WriteSchema);
                    ds.WriteXmlSchema( "tOperator.xsd");
                    xmlWriter0.Close();//====加个这个就可以了
                    ds.Clear();
                }
                catch (Exception ee)
                {
                    MessageBox.Show(ee.Message.ToString());
                    return;
                }