摘要:[VB][XML] 將資料庫資料寫入XML再使用GridView讀出
在這裡使用XmlWriter方法建立XML檔案,XmlWriter會重複覆蓋已建立的XML檔案,如需只讀取原有的XML檔案做修改則使用XmlDocument的方法。
首先先說明.Net內建已經有將DataSet資料轉成XML的方法在此先介紹此方法。
注意,產生的XML檔案需放置在App_Data目錄下
Dim ds As New DataSet
ds = GetData() '取得資料的方法
ds.WriteXml(Server.MapPath("~/App_Data/xmlDS.xml"))
如此就可以DataSet中的資料產生成XML檔案。
當然要自己寫也可以,下面為自己寫的方式:
Protected Sub btnToXML_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnToXML.Click
Dim ds As New DataSet
'取得資料
ds = GetData()
'存放之路徑
Dim filePath As String = HttpContext.Current.Request.MapPath("~/App_Data/xmlDS.xml")
Dim setthing As New XmlWriterSettings
'設定是否縮排
setthing.Indent = True
'設定是否每項屬性都分行
setthing.NewLineOnAttributes = True
Using writer As XmlWriter = XmlWriter.Create(filePath, setthing)
'寫入建立時間
writer.WriteComment("Created using an XML" & Context.Timestamp)
'寫入根節點
writer.WriteStartElement("UserInfo")
'取得資料列
For i As Integer = 0 To ds.Tables(0).Rows.Count - 1
'寫入資料列
writer.WriteStartElement("DataRow")
'取得欄位名稱
For Each r As DataColumn In ds.Tables(0).Columns
'寫入欄位與內容
writer.WriteElementString(r.ColumnName, ds.Tables(0).Rows(i).Item(r.ColumnName).ToString)
Next
writer.WriteEndElement()
Next
writer.WriteEndElement()
writer.Flush()
writer.Close()
End Using
End Sub
如此就將資料寫入XML檔案了,XML產出來的樣子如下
1
Arvin
25
2
Lisa
18
3
Jack
33
接下來要怎麼用GridView讀取XML資料呢?
也很簡單請看下面寫法。
首先在設計頁拉一個GridView,之後切換到程式碼頁
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim filePath As String = HttpContext.Current.Request.MapPath("~/App_Data/xmlDS.xml")
Dim ds As New DataSet
ds.ReadXml(filePath)
GridView1.DataSource = ds
GridView1.DataBind()
End Sub
然後網頁上GridView的畫面如下
以上就完成寫入XML讀出GridView的方法了!
2013/03/05 補充:
如果要將DataSet的XML字串讀取入DataSet可使用以下方法
string strXML = "XML字串";
StringReader reader = new StringReader(strXML);
DataSet ds = new DataSet();
ds.ReadXml(reader);
GridView1.DataSource = ds;
GridView1.DataBind();
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)