比如我有2张表head和list.
head表里有几个字段,list表里有几个字段。现在我要通过程序生成一个XML文件
生成的XML文件要是这样的形式:  <declaration>
    <head>
       <name>hhh</name>
       <sex>boy</sex>
       <birth>123</birth>
    </head>
    <list>
       <school>xx</school>
       <city></city>
    </list>
  </declaration>不通过查询语句,存储过程等数据库操作
而是要通过写节点的方式生成XML,并且是多张表里结合的数据
请那位大虾给个简单的CODE提供参考,不胜感激。

解决方案 »

  1.   

    楼主的马甲还真多,汗一个= =#
    2个表加入dataset然后用
    dataset.writexml()
      

  2.   


            private void button1_Click(object sender, EventArgs e)
            {
                string conn = "Data Source=(Local); Initial Catalog=declaration; Integrated Security=SSPI";            SqlConnection sqlConnection = new SqlConnection(conn);            string strSql;            string strSql1;            strSql = "select * from tbDeclare_head where InOutNumber = "+" '"+this.textBox1.Text+"' ";            strSql1 = "select * from tbDeclare_list where InOutNumber ="+" '"+this.textBox1.Text+"' ";            SqlCommand sqlCommand = new SqlCommand(strSql, sqlConnection);            SqlCommand sqlCommand1 = new SqlCommand(strSql1,sqlConnection);            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);            SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(sqlCommand1);            DataSet dataSet = new DataSet();            sqlDataAdapter.Fill(dataSet,"tbDeclare_head");            sqlDataAdapter1.Fill(dataSet,"tbDeclare_list");            string fileName = "H2000.xml";            FileStream fileStream = new FileStream(fileName,FileMode.Create);            XmlTextWriter writer = new XmlTextWriter(fileStream,Encoding.UTF8);            //声明XML版本号
                writer.WriteStartDocument();            //定义根节点的名称
                writer.WriteStartElement("declatation");            //创建head子节点
                for (int i = 0; i < dataSet.Tables["tbDeclare_head"].Rows.Count; i++)
                {
                    DataRow dataRow = dataSet.Tables["tbDeclare_head"].Rows[i];                writer.WriteStartElement("head");                for (int j = 0; j < dataSet.Tables["tbDeclare_head"].Columns.Count - 5; j++)//不需要的可以去掉这些节点
                    {
                        writer.WriteElementString(dataSet.Tables["tbDeclare_head"].Columns[j].ToString(),dataRow[j].ToString());
                    }
                    writer.WriteEndElement();
                }
                //创建list子节点
                for (int i = 0; i < dataSet.Tables["tbDeclare_list"].Rows.Count; i++)
                {
                    DataRow dataRow = dataSet.Tables["tbDeclare_list"].Rows[i];                writer.WriteStartElement("list");                for (int j = 0; j < dataSet.Tables["tbDeclare_list"].Columns.Count - 5; j++) 
                    {
                        writer.WriteElementString(dataSet.Tables["tbDeclare_list"].Columns[j].ToString(),dataRow[j].ToString());
                    }
                    writer.WriteEndElement();
                }
                this.dataGridView1.DataSource = dataSet.Tables["tbDeclare_head"];            this.dataGridView2.DataSource = dataSet.Tables["tbDeclare_list"];            writer.Close();            sqlConnection.Close();
           }