'说明: 把xml转换为数据库(dataset), 把数据库(dataset)转换为xml, ' 用记录集rs构造DataTable '代码未经编译。 'Copyright (C) 2007-3 SGPRO Imports SystemImports System.IOImports System.XmlImports System.Data Class DB2XML '把数据库写入xml Public Function DBToXML() Dim objDbConn as new DbConnection Dim strSql as string Dim strTableName as string Dim strXMLFile as string Dim dsMain as DataSet Dim dsRead as DataSet StrSql = "SELECT * FROM A" StrTableName = "A" StrXMLFile = "db2xml.xml" DbConnection.Open() MakeDataTable(dsMain, objDbConn, strTableName, strSql) 'Create Table, From rs to Table dsMain.WriteXml(strXMLFile, XmlWriteMode.IgnoreSchema) ' DataSet写入xml End Function '构造DataTable Private Sub MakeDataTable(ByRef dsMain as DataSet, ByVal oraDb As OracleConnecion,ByVal strTable As String, _ Optional ByVal strInputSQL As String = Nothing, _ Optional ByVal bNewFileFlg As Boolean = False) Dim rs As OracleDataRead Dim dtCurrentTable As New Data.DataTable(strTable) Dim drCurrentRow As Data.DataRow rs = oraDb.CreateDynasetstrInputSQL, &H4&) If Not rs.EOF Then Dim fieldCount As Integer Dim strFieldName As String For fieldCount = 0 To rs.Fields.Count - 1 strFieldName = rs.FieldName(fieldCount).ToString dtCurrentTable.Columns.Add(strFieldName) Next rs.MoveFirst() While Not rs.EOF drCurrentRow = dtCurrentTable.NewRow() 'output tbl value For Cnt = 0 To rs.Fields.count - 1 Dim strValue As String strValue = rs.Fields(Cnt).value drCurrentRow.Item(strFieldName) = strValue Next dtCurrentTable.Rows.Add(drCurrentRow) rs.MoveNext() End While End If dsMain.Tables.Add(dtCurrentTable) End Sub 'xml转换成DataSet Public Function ConVertXMLToDataSet(byVal strXMLFile as string) As DataSet Dim doc As New XmlDocument Try Dim dsRet New DataSet doc.Load(strXMLFile) Dim Xmlreader As XmlNodeReader = New XmlNodeReader(doc) dsRet.ReadXml(Xmlreader) ConVertXMLToDataTable = dsRet End If Catch ex As Exception ConVertXMLToDataTable=nothing End Try End Function End Class

评论