Windos Phone 循环调用webservice问题
我用webservice查询sql数据库,在用windows phone循环调用webservice时发现引用的学号集合的顺序与查得的学生姓名的顺序对不起来。代码如下:
wbservice代码:
[WebMethod]
public DataSet GetDataSet(string No) //查询学生姓名
{
string strRevise1 = "select * from 学生信息 where 学号 ='" + No+"'";
string strCon = "Data Source=(local);Initial Catalog=学生成绩管理系统;Integrated Security=True";
SqlConnection sqlCon = new SqlConnection(strCon);
sqlCon.Open();
SqlDataAdapter dataAdapter = new SqlDataAdapter(strRevise1, sqlCon);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
return ds;
return GetDataSet(strNo);
}
public static List stNo;//存学生学号
public static list stName;//存学生姓名
ServiceReference1.WebService_for_MASSoapClient newClient = new ServiceReference1.WebService_for_MASSoapClient();
newClient.GetDataSetCompleted += (s, arg) =>
{
IEnumerable<XElement> res = arg.Result.Nodes.DescendantsAndSelf("LampState");
foreach (string a in res)
{
stName.Add(a);
}
};
//循环学生学号数目次
for (int i = 0; i < (stNo.Count); i++)
{
newClient.GetDataSetAsync(stNO[i]);
}
[解决办法]
可能是你每次的请求响应顺序不一样把,
你先请求的第一个,然后第二个,但是谁也保证不了第一个请求会先返回。
for (int i = 0; i < (stNo.Count); i++)
{
newClient.GetDataSetAsync(stNO[i]);
}
你就不能让你的webservers公开一个接受学号集合的方法??
还有,最好别返回DataSet 这种重量级的对象,自己不会写个数据实体类吗?