[VB][XML] 將資料庫資料寫入XML再使用GridView讀出

摘要:[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();

 

 

 


以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)