2011-10-23 5 views
0

こんにちは私はSQL XMLフィールドをmy gridviewにバインドしようとしています。SQL XMLフィールドをグリッドビューにバインド

GridViewのは、次のようにする必要があります:私はこのようなローカルXMLファイルからのバインディングのGridViewの例に出くわしてきた

<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> 

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

    edit   vouc001    5  del 
    edit   vouc002    57  del 

私のSQLフィールドのXMLファイルは、次のようになります:私のXMLは、SQLサーバフィールド内にあるとき

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

は、私はそれをどのように行うことができますか?ありがとう。

答えて

1

のためのソースとして使用ロードすることができます。 SQL Serverに接続してデータを読み取る方法に関するチュートリアルは、たとえばhere(これらの検索や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(); 
    } 
} 

することはあなたのプログラムの流れがどのように見えるかのアイデアを与えるために、

0

あなたがstreamにXMLとあなたは、あなたのSQL Serverデータベースに接続してXMLを含む行を読んで、それを抽出する必要がDataSet

関連する問題