2011-10-23 70 views
0

嗨我正在嘗試將SQL XML字段綁定到我的gridview。將SQL XML字段綁定到gridview

GridView的應該是這樣的:

edit-update | **Voucher Code** | **Quantity** | delete 

    edit   vouc001    5  del 
    edit   vouc002    57  del 

在我的SQL領域的XML文件是這樣的:

<ArrayOfCampaignVoucher xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<CampaignVoucher> 
<VouCode>Vouc002</VouCode> 
<Qty>57</Qty> 
</CampaignVoucher> 
<CampaignVoucher xsi:nil="true" /> 
</ArrayOfCampaignVoucher> 

我已經跨越例子來自這樣的本地XML文件來綁定的GridView的:

DataSet dataSet = new DataSet(); 
dataSet.ReadXml("~/App_Data/input.xml"); 
this.GridView1.DataMember = "fruit"; 
this.GridView1.DataSource = dataSet; 
this.GridView1.DataBind(); 

當我的XML位於SQL服務器字段中時,該怎麼辦?謝謝。

回答

1

您需要連接到SQL Server數據庫,讀取包含您的XML行和解壓。有關如何連接到SQL Server和讀取數據的教程可以找到,例如here(您可以輕鬆找到更多這些Google搜索或在此處搜索)。

將數據庫中的XML作爲字符串讀取後,可以輕鬆設置數據流從中讀取數據並將其傳遞到DataSet.ReadXml方法 - 例如使用StringReader類。

爲了讓你的程序流程會是什麼樣的想法:

string connectionString = /* connection string to your database */ 
using (var connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
    var command = new SqlCommand("SELECT xmlColumn FROM xmlTable", connection); 
    using (var reader = command.ExecuteReader()) 
    { 
     string xml = reader.GetString(0); 
     DataSet dataSet = new DataSet(); 
     dataSet.ReadXml(new StringReader(xml)); 
     this.GridView1.DataMember = "fruit"; 
     this.GridView1.DataSource = dataSet; 
     this.GridView1.DataBind(); 
    } 
} 
0

我們可以將XML加載你進入stream,並用它作爲源DataSet