绑定SQL XML字段到gridview
本文关键字:gridview 字段 XML SQL 绑定 | 更新日期: 2023-09-27 18:12:01
嗨,我试图绑定一个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服务器字段?谢谢。
您需要连接到SQL Server数据库,读取包含XML的行并提取它。关于如何连接到SQL Server和读取数据的教程可以在这里找到,例如(你可以很容易地找到更多这些谷歌或搜索在这里SO)。
一旦你有你的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();
}
}
您可以将xml加载到stream
并将其用作DataSet
的源