【发布时间】:2014-11-24 09:55:55
【问题描述】:
## 在这段代码中,为什么没有从数据库中获取 sdr 中的数据? ##
下面的代码是业务层类:
public string[] AutoComplete(string Address)
{
DtAccess objDataAccess = new DtAccess();
List<string> request = new List<string>();
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@Mode", "AutoComplete");
param[1] = new SqlParameter("@Address", Address);
using (SqlDataReader sdr = objDataAccess.ExecuteReader(_spName, param))
{
while (sdr.Read())
{
request.Add(string.Format("{0}-{1}-{2}", sdr["Address"], sdr["Latitute"], sdr["Longitute"]));
}
}
return request.ToArray();
}
下面的代码是example.aspx.cs页面:
[WebMethod]
public static string[] GetAutoCompleteData(string Address)
{
BussinessLgc objBussinessLogic = new BussinessLgc();
return objBussinessLogic.AutoComplete(Address);
}
[更新]
Ajax 代码如下:
$(document).ready(function () {
$("#toAddress").autocomplete({
source: function (request, response) {
$.ajax({
url: '<%=ResolveUrl("~/Root.aspx/GetAutoCompleteData") %>',
data: "{ 'Address': '" + request.term + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.d.length == 0) {
$('.ui-autocomplete').hide();
}
else {
$(".pac-container").hide();
response($.map(data.d, function (item) {
return {
label: item.split('-')[0],
val: item.split('-')[1],
long: item.split('-')[2]
}
}))
}
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
select: function (e, i) {
$("#<%=DestinationSLat.ClientID %>").val(i.item.val);
$("#<%=DestinationELng.ClientID %>").val(i.item.long);
},
minLength: 2
});
});
我在jQuery 上面尝试从GetAutoCompleteData WebMethod 获取数据。但是数据不是来自数据库的 srd..
【问题讨论】:
-
发布您的
Ajax Jquery,它运行上述网络服务 -
您是否尝试过在 SQL Server 控制台中执行相同的操作并尝试捕获是否有异常。
标签: jquery asp.net web-services architecture