Arrays 类型为'的值;字符串';无法转换为';字符串的一维数组';网络服务呼叫
嘿,我得到的错误是: “字符串”类型的值无法转换为“字符串的一维数组” 在我的代码的这一行:Arrays 类型为'的值;字符串';无法转换为';字符串的一维数组';网络服务呼叫,arrays,vb.net,web-services,arraylist,Arrays,Vb.net,Web Services,Arraylist,嘿,我得到的错误是: “字符串”类型的值无法转换为“字符串的一维数组” 在我的代码的这一行: Dim blah As String = webService.theQ(qString:="SELECT blah FROM table WHERE blah = 'hello'") 我的web服务sqlQ功能代码是: <WebMethod(CacheDuration:=60)> _ <ScriptMethod(UseHttpGet:=False, ResponseFormat:=
Dim blah As String = webService.theQ(qString:="SELECT blah FROM table WHERE blah = 'hello'")
我的web服务sqlQ功能代码是:
<WebMethod(CacheDuration:=60)> _
<ScriptMethod(UseHttpGet:=False, ResponseFormat:=ResponseFormat.Json, XmlSerializeString:=False)> _
Public Function theQ(ByVal qString As List(Of String)) As String
Dim results As Object = fetchSQLQ("query", qString(0))
...etc etc
Dim ser As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim strResponse As String = ser.Serialize(results)
return strResponse
End Function
任何帮助都会很好 这个错误几乎说明了一切。webservice调用返回的是字符串,而不是字符串列表。如果查看脚本代码,它会将AJAX调用的结果解析为JSON。虽然我无法从代码的其余部分确定,但很可能webservice调用也返回了JSON字符串 确认的简便方法:
Dim blah as String = webService.theQ(...)
' Print out the value of blah or inspect in debugger...
如果字符串是JSON,那么您必须对其进行解析以获得您要查找的列表。您的问题是要传递给Web服务的参数。你通过了吗
webService.theQ(qString:="SELECT blah FROM table WHERE blah = 'hello'")
将字符串分配给qString
。但在你的声明中
Public Sub theQ(ByVal qString As List(Of String))
qString
声明为字符串列表
而且,您的web方法是一个子方法,因此没有任何返回值
Dim blah As List(Of String) = webService.theQ(. . . .
甚至不合法使用Dim blah作为字符串仍然有相同的错误。qString有类型列表(字符串),但您只传递一个字符串;Q是一个
子
,它不产生返回值,但您可以将其用作函数
@sehnsuch检查我的OP以获得更多的web服务代码,从而更好地解释我返回的内容。@StealthRT请查看我的答案-它解释了您的错误所在
Dim blah As List(Of String) = webService.theQ(. . . .