[Mono-list] Webservice and jQuery problem
Paul F. Johnson
paul at all-the-johnsons.co.uk
Wed Oct 27 20:43:24 EDT 2010
Hi,
I'm stuck on this one as I think it's all more or less correct.
I have a very simple web service which sucks data from a database. On
the web page, I have a jQuery which produces a button, click it and data
should be brought back out.
Only problem is that it gives me an error 500
The webservice looks like this
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Collections
Imports System.Data
Imports System.Web
Imports System.Data.SqlClient
Imports System.Threading
Imports System.Diagnostics
Imports System
' To allow this Web Service to be called from script, using ASP.NET
AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService1
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function GetData(ByVal server As String, ByVal uid As String,
ByVal pw As String, _
ByVal db As String, ByVal cmds As ArrayList,
ByVal tbl As ArrayList) As DataSet
Dim connection As SqlConnection
Dim data As New DataSet("GetDataSet")
Dim constr As String = "server=" + server + "; uid=" + uid + ";
pwd=" + pw + "; database=" + db
Try
connection = New SqlConnection(constr)
connection.Open()
For i = 0 To cmds.Count
If (Not (cmds(i).ToString()).StartsWith(("SELECT" Or
"Select"))) Then
Throw MySQLException("The SQL command must start
with SELECT or Select")
End If
Dim command As New SqlCommand
command.Connection = connection
command.CommandText = cmds(i).ToString()
Dim dataadapter As New SqlDataAdapter
dataadapter.SelectCommand = command
dataadapter.TableMappings.Add("Table",
tbl(i).ToString())
dataadapter.Fill(data)
Return data
Next
Catch ex As System.Data.SqlClient.SqlException
Throw
End Try
connection.Close()
End Function
Private Function MySQLException(ByVal p1 As String) As Exception
Throw New NotImplementedException
End Function
End Class
Public Class MySQLException
Inherits System.Exception
Public MySqlException(Message) As ApplicationException
End Class
with the jQuery looking like this
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>A quick and dirty hack</title>
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btnMore").click(function() {
$.ajax({
type:"POST",
contentType: "application/json; charset=utf-8",
url: "WebService1.asmx/GetData",
data: "{'localhost', 'root', '', 'Table1',
{'SELECT','Name','where','age > 25','and','hometown == Liverpool'},
{'','','',''}",
success: onSuccess,
error: onError
});
});
});
function onSuccess(result)
{
$("#datalist").empty()
var strings = result.d;
for (var i = 0; i < strings.length; ++i)
$("#datalist").append("<li>" + strings[i] + "</li>");
}
function onError(result)
{
alert(result.status + ": " + result.statusText);
}
</script>
</head>
<body>
<form id = "form1" runat="server">
<div>
<ul id="datalist"></ul>
<br />
<input type="button" id="btnMore" value="do it" />
</div>
</form>
</body>
</html>
The only part which I think is wrong is the passing in of tbl to the
webservice. Do I need to pass in a something corresponding to the
correct field type here?
Be gentle, this is my first webservice!
TTFN
Paul
--
Vertraue mir, ich weiss, was ich mache...
More information about the Mono-list
mailing list