Dim LanDs As New DataSet
        '   Dim sql As String = "......."
        Dim DBConn As String = "User ID=XX;Password=xx;Server=localhost;DataBase=...;"
        ' Dim Conn As SqlConnection
        Dim reader As SqlDataReader
        Dim Language As String
        Dim Auno As Integer
        Dim arparm As SqlParameter = New SqlParameter
        '根據不同語言生成XML,每种語言對應一個XML檔
        reader = SqlHelper.ExecuteReader(DBConn, CommandType.Text, "")
        Do While reader.Read
            Language = reader.Item("lan")
            arparm = New SqlParameter("@CAuno", SqlDbType.Int)
            arparm.Value = reader.Item("auno")
            SqlHelper.FillDataset(DBConn, CommandType.StoredProcedure, "up_CreatXml", LanDs, New String() {"LAN"}, arparm)
            'If Dir("C:\XML") = "" Then

            'End If
            LanDs.WriteXml("C:\XML\" & Language & ".Xml", XmlWriteMode.WriteSchema)
            LanDs.Tables("Lan").Clear()
        Loop
        reader.Close()
        'Dim xmlSW As System.IO.StreamWriter = New System.IO.StreamWriter("D:\XML\CreateXml\Lan.Xml")
        'LanDs.WriteXml(xmlSW, XmlWriteMode.WriteSchema)
        'xmlSW.Close()

原理很简单,就是将数据查询出来到dataset里,然后用    LanDs.WriteXml("C:\XML\" & Language & ".Xml", XmlWriteMode.WriteSchema)这个就ok了
缺点就是如果数据比较大,程序会比较慢