我有一个vb函数的ajax调用。 vb函数失败,因为查询所隐含的数据表CFG_QUERY_REPORT
在数据库中不存在。
我希望将vb中catch
中的错误消息返回到ajax的“错误”,以便我可以向用户显示该错误。原因是VB中的错误消息正好说明该表在数据库中不存在,而错误实际上是从此处显示给用户的]
error: function (a, b, c) { alert("Ajax call to multiAjax failed: " + a); }
不会告诉用户错误是由于表不存在。 Ajax错误消息没有用。
如何显示从vb catch
向用户的错误消息?
谢谢
ajax:
function multiAjax(funcName, queryName, onSuccess) { var result = null; $.ajax({ type: "POST", url: "WebService1.asmx/" + funcName, contentType: "application/json; charset=utf-8", dataType: "json", success: function (Response) { onSuccess(Response) }, data: JSON.stringify({ "queryName": queryName }), error: function (a, b, c) { alert("Ajax call to multiAjax failed: " + a); } }); }
VB
<WebMethod(EnableSession:=True)>
Public Function getQueryNo()
Try
Dim queryNumberSql As String
Dim queryNo As Integer
Using dr As New DataReader(dif)
queryNumberSql =
"SELECT min(unused) AS unused
FROM (
SELECT MIN(t1.QUERY_NUMBER)+1 as unused
FROM CFG_QUERY_REPORT AS t1
WHERE NOT EXISTS (SELECT * FROM CFG_QUERY_REPORT AS t2 WHERE t2.QUERY_NUMBER = t1.QUERY_NUMBER+1)
UNION
-- Special case for missing the first row
SELECT 1
FROM CFG_QUERY_REPORT AS t1
WHERE NOT EXISTS (SELECT * FROM CFG_QUERY_REPORT WHERE QUERY_NUMBER = 1)
) AS subquery"
dr.ExecuteReader(queryNumberSql)
While dr.Read()
queryNo = Integer.Parse(dr("unused"))
End While
Return queryNo
End Using
Catch ex As Exception
Console.WriteLine($"Error trying to set query number: {ex}")
Return ex
End Try
End Function
我有一个vb函数的ajax调用。 vb函数失败,因为该查询所暗示的dataTable不在CFG_QUERY_REPORT中。我想要从vb中捕获的错误消息...
这首先取决于您用于发出请求的库/实现。如果服务器发送错误代码,例如500,某些库将拒绝。
@ freedomn-m提供的解决方案: