自定义 XML 文件( 文件名由数据库字段命名)





1.00/5 (3投票s)
自定义 XML 文件(
引言
几个月前,我在互联网上搜索过如何在 vb.net 中手动编写 XML 文件,并且在每个文件中,文件名根据数据库中的字段命名,基于 SQL SERVER 表中的字段。但我什么也没找到。我需要控制写入的信息,并查看已发送的文件编号。所以,我问了一个朋友,他问了他的朋友,他的朋友又问了另一个朋友……其中有一些好的想法,也有一些不好的……一些想法来自一个朋友,与其他朋友的想法结合起来,这就是我所做的。
背景
例如
我有
Sql Server 2005 -> 表: "Sent_view"
字段: CrtNo, Field1, Field2, Field3, Field4, Field5
数据: 1 Field11 Field12 Field13 Field14 Field15
2 Field21 Field22 Field23 Field24 Field25
---------------------------------------------
15 Field151 Field152 Field153 Field154 Field155
行数: 15
我需要
- 15 个 XML 文件,文件名如下: "crtNo".xml
1.xml
2.xml
------
15.xml
每个 XML 文件包含与 crtNo 对应的数据。
使用代码
主要思路是
- 在 VS 中基于 "sent_view" 表(视图)创建一个数据集
- 将数据集单元格中的信息绑定到一些名称(Name1, Name2)
- 编写 XML 文件的语法
代码块应设置为 "Formatted" 样式,如下所示:
Dim strConnection As String = strConn ' strConn is your own connection string
Dim cn As SqlClient.SqlConnection = New SqlClient.SqlConnection(strConn)
Dim dataset As New DataSet
Dim strSelect As String
cn.Open()
' bring data into dataset
strSelect = "SELECT * FROM sent_view"
Dim dscommand As New SqlClient.SqlDataAdapter(strSelect, cn)
dscommand.Fill(dataset, "sent_view") ' incarc datasetul
'checking if data are loaded into dataset and count it
Dim con As Integer
con = Me.BindingContext(dataset, "sent_view").Count
If con = 0 Then
'MessageBox.Show("There is no data to send !")
End If
' starting to write line by line
Dim i As Integer = 0
For i = 0 To dataset.Tables("sent_view").Rows.Count - 1
' writing the crtNo value into xml's name
Dim id As Integer = Int32.Parse(dataset.Tables("sent_view").Rows(i).ItemArray(8).ToString)
Dim fis As System.IO.StreamWriter = New System.IO.StreamWriter(("c:\Files4Export\" + id.ToString + ".xml"))
' ===========================
' atach to each variable a value from dataset
Dim item_Field1 As String = dataset.Tables("sent_view").Rows(i).ItemArray(1).ToString
Dim item_Field2 As String = dataset.Tables("sent_view").Rows(i).ItemArray(2).ToString
Dim item_Field3 As String = dataset.Tables("sent_view").Rows(i).ItemArray(3).ToString
Dim item_Field4 As String = dataset.Tables("sent_view").Rows(i).ItemArray(4).ToString
Dim item_Field5 As String = dataset.Tables("sent_view").Rows(i).ItemArray(5).ToString
' ===========================
' here i will write in xml file, using fis.WriteLine() command
fis.WriteLine("<root>")
fis.WriteLine("<Field1>" & item_Field1 & "</Field1>")
fis.WriteLine("<Field2>" & item_Field2 & "</Field2>")
fis.WriteLine("<Field3>" & item_Field3 & "</Field3>")
fis.WriteLine("<Field4>" & item_Field4 & "</Field4>")
fis.WriteLine("<Field5>" & item_Field5 & "</Field5>")
fis.WriteLine("</root>")
' ================ write the xml file ==================
' dataset.WriteXmlSchema(fis)
' dataset.WriteXml(fis) ' write in files all datas from dataset
fis.Close()
Next i
cn.Close()
历史
"没有历史,只有未来"
- 如果您有更好的想法,请与我分享。