使用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)
    {
    }
}

使用JQueryAjax调用将记录插入数据库不起作用

请尝试此

步骤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]。它会起作用的。