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

时间:2014-09-29 11:06:02

标签: c# jquery html asp.net ajax

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

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

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

    }
}

3 个答案:

答案 0 :(得分:0)

请试试这个

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

答案 1 :(得分:0)

如果您使用的输入按钮类型为&#34;请提交&#34;或者asp:带有runat的按钮=&#34;服务器&#34;将其更改为

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

并且还会改变你的错误函数,如果有任何

,它会给你一个确切的错误
error: function (err) {

                    alert(JSON.stringify(err)));
                }

如果您使用的是ajax

,则无需此功能
protected void btnsubmit_Click(object sender, EventArgs e)
{

}

答案 2 :(得分:0)

使用System.Web.Services添加名称空间; 然后为你的静态字符串函数添加[webmethod]。它会工作。