繁体   English   中英

如何从Web服务获取XML?

[英]How do I get XML from a Webservice?

我正在尝试访问此链接上的Web服务

如果调用该方法,您将得到响应。

现在我想从asp.net应用程序中调用GetCitiesByCountry方法,仅将城市加载到dropdownlist中,并且我编写了以下代码

protected void Page_Load(object sender, EventArgs e)
       {
            weather.GlobalWeatherSoapClient wet = new weather.GlobalWeatherSoapClient();
            DataSet ds = new DataSet(wet.GetCitiesByCountry("United Kingdom"));
            ds.GetXml();            
            DropDownList1.DataTextField = "City";
            DropDownList1.DataValueField = "City";
            DropDownList1.DataSource = ds;
            DropDownList1.DataBind();
}

但是我收到以下错误:

“ /”应用程序中的服务器错误。

IListSource不包含任何数据源。

说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息: System.Web.HttpException:IListSource不包含任何数据源。

Source Error:     

Line 23: DropDownList1.DataValueField = "City";
Line 24: DropDownList1.DataSource = ds;
Line 25: DropDownList1.DataBind();          

源文件:c:\\ Users \\ Rafi \\ Documents \\ Visual Studio 2013 \\ Projects \\ WebSite4 \\ demo1 \\ main.aspx.cs行:25


任何帮助将不胜感激。

您使用了错误的DataSet函数

DataSet ds = new DataSet();
ds.ReadXml(new StringReader(wet.GetCitiesByCountry("United Kingdom")));

Msdn

这是因为您正在设置数据集的名称,而不是将任何数据放入其中。 Dataset(string)构造函数将数据集的名称设置为传递给它的字符串。 因此,实质上,您是将数据集的名称设置为Web服务返回的值。

你应该做这个

DataSet yourDataSet = new DataSet("my dataset");

yourDataSet.ReadXml(new StringReader(wet.GetCitiesByCountry("United Kingdom")));

尝试

DropDownList1.DataSource = ds.Tables["<tablename>"].DefaultView;

这是您需要用来从下拉列表中加载数据的表名。

如果您的数据集中只有一个表,则可以执行以下操作

DropDownList1.DataSource = ds.Tables[0].DefaultView;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM