将SQL XML字段绑定到gridview

时间:2011-10-23 07:48:59

标签: c# asp.net sql vb.net

您好我正在尝试将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服务器字段中时,我该怎么做?感谢。

2 个答案:

答案 0 :(得分:1)

您需要连接到SQL Server数据库,读取包含XML的行并将其解压缩。可以找到有关如何连接到SQL Server和读取数据的教程,例如here(您可以在此处轻松找到更多这些谷歌搜索或搜索)。

从数据库读取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();
    }
}

答案 1 :(得分:0)

您可以将xml加载到stream并将其用作DataSet的来源