使用JQueryAjax调用将记录插入数据库不起作用
本文关键字:插入 数据库 不起作用 记录 JQueryAjax 调用 使用 | 更新日期: 2023-09-27 18:24:53
朋友们,我是这个jQuery ajax调用的新手。我想在不回发的情况下将数据插入数据库。目前它正在使用回发,请找到错误并提供帮助。在这里,我使用了jQueryajax调用,在这个调用中,我获取数据和将其传递给webservice,以便在后台插入记录没有回发,但它将得到回发并插入记录。
在这里,我只使用了三个记录进行测试。
默认.aspx代码
<head runat="server">
<title></title>
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#btnsubmit').click(function () {
var firstname = $('#txtfirstname').val();
var lastname = $('#txtlastname').val();
var occupation = $('#txtoccupation').val();
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'Default.aspx/savedata',
data: "{'firstname':'" + firstname + "','lastname':'" + lastname + "','occupation':'" + occupation + "'}",
async: false,
success: function (response) {
$('#txtfirstname').val(''); $('#txtlastname').val(''); $('#txtoccupation').val('');
//alert("Record saved successfully in database");
},
error: function () {
alert("some problem in saving data");
}
});
});
});
</script>
</head>
</html>
Default.aspx代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public static string savedata(string firstname, string lastname, string occupation)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString());
try
{
SqlCommand cmd = new SqlCommand("Insert into profileinfo values('" + firstname + "','" + lastname + "','" + occupation + "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return "Success";
}
catch(Exception ex)
{
return "failed";
}
}
protected void btnsubmit_Click(object sender, EventArgs e)
{
}
}
请尝试此
步骤1:
添加名称空间:
using System.Web.Services;
[WebMethod]
public static string savedata(string firstname, string lastname, string occupation)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ToString());
try
{
SqlCommand cmd = new SqlCommand("Insert into profileinfo values('" + firstname + "','" + lastname + "','" + occupation + "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return "Success";
}
catch(Exception ex)
{
return "failed";
}
}
在javascript中,请尝试此
$(document).ready(function () {
$('#btnsubmit').click(function () {
var firstname = $('#txtfirstname').val();
var lastname = $('#txtlastname').val();
var occupation = $('#txtoccupation').val();
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'Default.aspx/savedata',
data: "{'firstname':'" + firstname + "','lastname':'" + lastname + "','occupation':'" + occupation + "'}",
async: false,
success: function (response) {
$('#txtfirstname').val(''); $('#txtlastname').val(''); $('#txtoccupation').val('');
//alert("Record saved successfully in database");
},
error: function () {
alert("some problem in saving data");
}
});
return false; //Plese return false in your js
});
});
如果您使用的是type="submit"的输入按钮或asp:button的runat="server",请将其更改为
<input type="button" id="btnsubmit" value="TextHere">
同时也改变你的错误函数,这样它会给你确切的错误,如果任何
error: function (err) {
alert(JSON.stringify(err)));
}
如果您使用的是ajax ,则不需要此功能
protected void btnsubmit_Click(object sender, EventArgs e)
{
}
使用System.Web.Services添加名称空间;然后在静态字符串函数之前添加[webmethod]。它会起作用的。