当前位置: 代码迷 >> Web Service >> webservice中int型参数有关问题
  详细解决方案

webservice中int型参数有关问题

热度:314   发布时间:2012-12-16 12:02:32.0
webservice中int型参数问题
在本地直接浏览webservice,并调用webmethod时,由于方法中有Int型参数,就一直报错
错误代码如下:
   

System.ArgumentException: 无法将  转换为 System.Int32。
参数名: type ---> System.FormatException: 输入字符串的格式不正确。
   在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
   在 System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   在 System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
   在 System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
   在 System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
   在 System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()





请帮忙解答,谢谢!!!
------解决方案--------------------
输入字符串的格式不正确,你输入的内容有问题吧,是否符合转换规则
------解决方案--------------------
我什么值也没有传,直接调用的,

 [WebMethod]
        public ReturnResult Register(string UserName, int UserType, string IpAddress,
            string PassWord, string UserTrueName, string UserPhone, string IdCardNo, string RegisterTime
)
        {}

这是方法名,里面有对username进行判断是否为空或NULL,可是方法一调用就直接报上面的错误,不知道是哪里出问题了,还是需要在方法调用前先去判断,怎么判断呢???
------解决方案--------------------
有人在吗??请帮忙解答一下啦,着急呢!!谢谢啦!!
------解决方案--------------------
不传参数,可以将参数设置为可空类型!
[WebMethod]
        public ReturnResult Register(string UserName, int? UserType, string IpAddress,
            string PassWord, string UserTrueName, string UserPhone, string IdCardNo, string RegisterTime
)
        {}
------解决方案--------------------
webmethod里面只能传基本类型的数据,int?会无法识别
------解决方案--------------------
你重新刷新一下你的web引用试试
------解决方案--------------------
int要赋初值,根据异常信息是类型转换的错误。最好debug跟进看看。
------解决方案--------------------
使用单步调试查看,应该是类型传入错误。

你的webmethod 定义了 int 类型参数,传值的时候 确定是 int 了嘛?
  相关解决方案