【问题标题】:Inserting records to database using JQuery Ajax call is not working使用 JQuery Ajax 调用将记录插入数据库不起作用
【发布时间】:2023-03-03 11:43:01
【问题描述】:

朋友们,我是这个 jQuery ajax 调用的新手。 我想将数据插入数据库而不回发。 目前它正在使用回发,请找到错误和帮助。 在这里我使用了 jQuery ajax 调用,在这里我正在获取数据和 将其传递给 Web 服务以在后台插入记录 没有回发,但它会得到回发并插入记录。

这里我只使用了三个记录来进行测试。

Default.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.cs 代码

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)
    {

    }
}

【问题讨论】:

    标签: c# jquery html asp.net ajax


    【解决方案1】:

    请试试这个

    第 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
                });
            });
    

    【讨论】:

    • 嗨,避免回发使用在按钮点击事件中返回 false。
    • 只在 javascript 中返回 false。我已经更新了代码请尝试
    【解决方案2】:

    如果您使用 type="submit" 的输​​入按钮或带有 runat="server" 的 asp:Button,请将其更改为

    <input type="button" id="btnsubmit" value="TextHere">
    

    并且像这样改变你的错误函数,如果有的话,它会给你确切的错误

    error: function (err) {
    
                        alert(JSON.stringify(err)));
                    }
    

    如果你使用的是ajax,则不需要这个功能

    protected void btnsubmit_Click(object sender, EventArgs e)
    {
    
    }
    

    【讨论】:

      【解决方案3】:

      使用 System.Web.Services 添加名称空间; 然后在您的静态字符串函数之前添加 [webmethod]。它会起作用。

      【讨论】:

        猜你喜欢
        • 2011-09-29
        • 2015-05-21
        • 1970-01-01
        • 2013-08-25
        • 1970-01-01
        • 2018-11-25
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        相关资源
        最近更新 更多