我想讀一個簡單的Web服務(REST)和填充在我的C#桌面應用程序下拉框。我; M用.NET 2.0轉換XML文檔中的數據表在C#中
以下是我的web服務返回XML
<sections type="array">
<section>
<name>Standing</name>
<created-at type="datetime">2011-10-23T23:17:54+05:30</created-at>
<updated-at type="datetime">2011-10-23T23:17:54+05:30</updated-at>
<id type="integer">1</id>
<status type="integer">1</status>
<service-charge type="float">0.0</service-charge>
</section>
<section>
<name>VIP</name>
<created-at type="datetime">2011-10-30T11:27:05+05:30</created-at>
<updated-at type="datetime">2011-10-30T11:27:05+05:30</updated-at>
<id type="integer">2</id>
<status type="integer">1</status>
<service-charge type="float">10.0</service-charge>
</section>
,並在下面的代碼我試圖將XML文檔轉換爲數據表
public DataTable getSections() {
String url = "http://<site_url>/sections.xml";
DataTable t = new DataTable();
HttpHandler handle = new HttpHandler();
StreamReader sr = handle.executeGET(url);
String xml = "";
while (sr.Peek() >= 0)
{
xml += sr.ReadLine();
}
XmlDataDocument doc = new XmlDataDocument();
doc.LoadXml(xml);
XmlReader xmlReader = new XmlNodeReader(doc);
DataSet ds = new DataSet();
ds.ReadXml(xmlReader);
t = ds.Tables[0];
return t;
}
並在最後一段我試圖將它綁定到我的下拉框(cmbSections)
DataTable t = sec.getSections();
cmbSections.DataSource = t;
cmbSections.DisplayMember = "name";
cmbSections.ValueMember = "id";
但我發現了以下錯誤
Cannot bind to the new display member.
Parameter name: newDisplayMember
缺少什麼我在這裏,請大家幫幫忙,我是新來的C#世界
如果你在getSections的返回行放置一個斷點,你在DataSet中看到了什麼? – sq33G 2011-12-18 19:06:34
你有一個源XML模式? – curtisk 2011-12-18 19:16:44
嗨Sq33G,我覺得我得到的一些值,但不知道如何調試,但是當我使用「t.GetType();」我越來越{} System.Data.DataTable作爲輸出,有沒有什麼特別的部分,我應該看看,謝謝你的答案 – sameera207 2011-12-18 19:19:47