我正在尝试访问this link
上的网络服务如果您调用该方法,您将获得回复。
现在我想从我的asp.net应用程序调用GetCitiesByCountry方法,只将城市加载到下拉列表中,我已经编码了
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 Line:25
任何帮助都会非常感激。
答案 0 :(得分:2)
使用错误的DataSet函数
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(wet.GetCitiesByCountry("United Kingdom")));
请参阅Msdn
答案 1 :(得分:1)
这是因为您正在设置数据集的名称而不是将任何数据放入其中。 Dataset(string)
构造函数将数据集的名称设置为传递给它的字符串。基本上,您将数据集的名称设置为Web服务返回的值。
你应该这样做
DataSet yourDataSet = new DataSet("my dataset");
yourDataSet.ReadXml(new StringReader(wet.GetCitiesByCountry("United Kingdom")));
答案 2 :(得分:0)
尝试
DropDownList1.DataSource = ds.Tables["<tablename>"].DefaultView;
这里是您需要从下拉列表中加载数据的表名。
如果您的数据集中只有一个表,那么您可以执行以下操作
DropDownList1.DataSource = ds.Tables[0].DefaultView;