【问题标题】:Bind SQL XML field to gridview将 SQL XML 字段绑定到 gridview
【发布时间】:2011-10-23 07:48:59
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您需要连接到您的 SQL Server 数据库,读取包含您的 XML 的行并提取它。可以找到有关如何连接到 SQL Server 和读取数据的教程,例如 here(您可以在 SO 上轻松找到更多此类 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();
        }
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-02-17
        • 1970-01-01
        • 2010-12-31
        • 2014-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-09
        相关资源
        最近更新 更多