【发布时间】:2019-02-10 15:52:06
【问题描述】:
这是从查询中获取数据的 getData 函数 并通过数据阅读器将它们附加到字符串中,然后将字符串返回给ajax:
public static string GetData(string Word)
{
string response = "<p>No customer selected</p>";
string connect = "Data Source=SAFI-PC\\SQLEXPRESS;Initial Catalog=work1;Integrated Security=True";
string sql = "SELECT word_Id ,word ,meaning ,syn1 ,syn2,syn3 ,syn4 FROM trial WHERE word = N'"+Word+"'";
//" SELECT tbl_dic.WordID, tbl_dic.Word, tbl_dic.meaning, tbl_dic.syn1, tbl_dic.syn2, tbl_dic.syn3, tbl_dic.syn4, tbl_Trans.Definition, tbl_Trans.Translation FROM tbl_dic INNER JOIN tbl_Trans ON tbl_dic.WordID = tbl_Trans.WordID where Word=N'" + Word + "'";
StringBuilder sb = new StringBuilder();
using (SqlConnection conn = new SqlConnection(connect))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("Word", Word);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
sb.Append("<p>");
sb.Append("<strong>" + rdr["meaning"].ToString() + "</strong><br />");
sb.Append(rdr["syn1"].ToString() + "<br />");
sb.Append(rdr["syn2"].ToString() + "<br />");
sb.Append(rdr["syn3"].ToString() + "<br />");
sb.Append(rdr["syn4"].ToString() + "<br />");
sb.Append("</p>");
response = sb.ToString();
conn.Close();
return response;
}
}
return "<p style='background-color:black;'>sdadasdasda</p>";
}
}
}
现在是 ajax/jquery 代码:
$(document).ready(function () {
$("#askme").keyup(function () {
$("#ora").empty();
$.ajax({
type: "POST",
url: "solution1.aspx/GetData",
data: "{'Word' : '" + $("#askme").val() + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (res) {
var json1 = JSON.stringify(res);
alert("sucess");
console.log(json1);
$("#ora").html(json1);
},
error: function (xhr, textStatus, err) {
alert("readyState: " + xhr.readyState);
alert("responseText: " + xhr.responseText);
alert("status: " + xhr.status);
alert("text status: " + textStatus);
alert("error: " + err);
}
});
});
});
当成功和控制台记录 res 时,返回以下内容:
{"Message":"Authentication failed.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"}
可能是视觉工作室坏了需要修理吗,因为我知道查询有效并且我已经尝试了 3 种不同的方法来完成任务并且每次我得到同一个对象 注意:我有另一个用 asp.net mvc 编写的项目,ajax 运行良好 请帮忙!!!!
【问题讨论】:
-
当您尝试访问
solution1.aspx/GetData时,我假设“身份验证失败”。我会确保你能做到这一点。 -
您正在从 Visual Studios 运行它并确认您可以使用您的 Windows 凭据访问数据库是否正确?这不是以其他用户身份运行,是您,您确实有访问权限?
-
no ajax 关于 solution1.apsx/getdata 是否成功,否则会报错。
-
是的,我可以访问数据库,其他 mvc 项目运行良好
-
我找到了解决方案这让我抓狂。内部 ~/App_Start/RouteConfig.cs 更改: settings.AutoRedirectMode = RedirectMode.Permanent;到:settings.AutoRedirectMode = RedirectMode.Off;
标签: c# jquery asp.net ajax webforms