【发布时间】:2015-10-23 17:16:34
【问题描述】:
嘿,我得到的错误是:
“字符串”类型的值无法转换为“字符串的一维数组”。
在我的代码的这一行:
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
我不确定如何按照它的要求格式化它?
这就是我使用 AJAX 调用它的方式(它工作正常):
var sqlCC = "SELECT blah FROM table WHERE blah = 'hello'";
$.ajax({
type : "POST",
crossDomain : true,
dataType : 'json',
cache : false,
contentType : "application/json",
url : "/Service1.asmx/theQ",
data : JSON.stringify({
qString : [sqlCC]
}),
success : function (data2) {
var obj2 = jQuery.parseJSON(data2);
},
error : function (xhr, status, error) {
console.log(xhr.responseText);
}
});
任何帮助都会很棒!
【问题讨论】:
-
qString 的类型为 List(Of String) 但您只传递一个字符串; theQ 是一个
Sub,它不产生任何返回值,但你将它用作Function -
@Sehnsucht 检查我的 OP 以获取更多 Web 服务代码,以更好地解释我返回的内容。
-
@StealthRT 请看我的回答 - 它解释了你做错了什么
标签: arrays vb.net web-services arraylist