关于网友提出的“arraylist排序 Arraylist 做web service 的参数出错”问题疑问,本网通过在网上对“arraylist排序 Arraylist 做web service 的参数出错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:arraylist排序 Arraylist 做web service 的参数出错
描述: 我在我的web service 中用 arraylist 做了参数,为什么在调用的时候传入arraylist 类型的值的时候报错,说与该webservice 匹配的重载方法具有一些无效参数。
[WebMethod(Description = "This Method is used to generate a shoppingcart")]
public DataSet Shopingcart(ArrayList Booklist)
{
string cn = "Data Source=.;Initial Catalog=951;User ID=sa;Password=0591245";
SqlConnection conn = new SqlConnection(cn);
conn.Open();
DataSet ds = new DataSet();
foreach (string s in Booklist)
{
string sql = string.Format("select BookNo,BookName,Prices from BookInfo WHERE BookNo='{0}'", Booklist[0]);
SqlCommand cmd = new SqlCommand(sql, conn);
//ds.Tables.Add(newDT);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
}
return ds;
}
protected void Page_Load(object sender, EventArgs e)
{
BookSearch.Service Shopcart = new BookSearch.Service();
ArrayList Bl = (ArrayList)Session["Booklist"];
DataSet ds;
ds = Shopcart.Shopingcart(Bl);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}
解决方案1: 人家都说出来了·你就不能自己去根据他说的搜一搜啊……
非要人家把牙膏全部挤出来,才能刷完牙?
解决方案2: 比如说ArrayList里面存放的是User对象
那么写成这样
[XmlInclude(typeof(User))]
[WebMethod(Description = "This Method is used to generate a shoppingcart")]
public DataSet Shopingcart(ArrayList Booklist)
{
string cn = "Data Source=.;Initial Catalog=951;User ID=sa;Password=0591245";
SqlConnection conn = new SqlConnection(cn);
conn.Open();
DataSet ds = new DataSet();
foreach (string s in Booklist)
{
string sql = string.Format("select BookNo,BookName,Prices from BookInfo WHERE BookNo='{0}'", Booklist[0]);
SqlCommand cmd = new SqlCommand(sql, conn);
//ds.Tables.Add(newDT);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
}
return ds;
}
如果还有其他类型就再增加XmlInclude
解决方案3: ArrayList里面的类型要用[XmlInclude]标识出来,所有在ArrayList里包含的类型
以上介绍了“arraylist排序 Arraylist 做web service 的参数出错”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2419780.html