[英]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.