无法使用json在数据库中插入数据

时间:2014-05-25 12:58:53

标签: jquery asp.net ajax json

我想使用json插入我的数据。 这是我的代码

<head id="Head1" runat="server">
    <title>Register</title>
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
   <script type="text/javascript" src="js/MyJs.js" ></script>
</head>

<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td>Name : </td>
                <td>
                   <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>Password : </td>
                <td>
                   <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>                
                <td colspan="2">
                    <asp:Button ID="Button1" runat="server" Text="SUBMIT" /><br />
                    <div id="loadingPanel" style="color:green; font-weight:bold;display:none;">Data Saving...</div>
                    <asp:Label runat="server" ID="lbl" Visible="false" Text="chk"></asp:Label>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

我的jquery代码是。

$(document).ready(function () {
    $('#Button1').on('click', function () {
        var uname = $('#TextBox1').val();
        var upass = $('#TextBox2').val();
        $('#loadingPanel').show();
        $.ajax({
            url: "Default.aspx/SaveData",
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify({
                "name": uname,
                "pass": upass
            }),
            success: function (data) {
                if (data.d == "success") {
                    alert("Data saved successfully");                    
                }
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(thrownError);
            }
        }).done(function () {
            // here hide loading panel as function complete
            $('#loadingPanel').hide();
        });
    });
});

代码背后的代码是

[WebMethod]
    public static string SaveData(string name,string pass)
    {
        string str = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
        string status = string.Empty;
        SqlConnection con = new SqlConnection(str);
        con.Open();
        SqlCommand cmd = new SqlCommand("insert into Login values ('"+name+"','"+pass+"')",con);
        int flag = cmd.ExecuteNonQuery();

        if (flag > 0)
        {

            status = "success";
        }

        return status;
    }

但是当我点击提交按钮时,它不会插入数据。它只是刷新页面。并且它没有显示任何错误。

3 个答案:

答案 0 :(得分:0)

您已将方法名称作为大写字符

$.Ajax({...

您应该用

替换它

$.ajax({...

并从click事件返回false,以防止页面回发。

答案 1 :(得分:0)

当你不需要服务器端事件时,不要使用asp:按钮。只需使用简单的html按钮或输入类型按钮进行onclick事件。

如果您决定使用html按钮,请记住,旧的IE版本也需要分配一种按钮。如果您不这样做,那么旧版本的IE将始终提交表格。

<button type="button" value="SUBMIT" onclick="whatever" />

答案 2 :(得分:0)

替换你的按钮代码

 <input type="button" id="Button1" value="sub" />

这里是jquery代码

$(document).ready(function () {
    $('#Button1').on('click', function () {
        var uname = $('#TextBox1').val();
        var upass = $('#TextBox2').val();
        call(uname, upass);

    });
});

function call(uname, upass) {
    $.ajax({
        type: "POST",
        url: "Default.aspx/SaveData",
        data: "{name : '" + uname + "', pass: '" + upass + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",       
        success: function (v) {
            alert("OK");
        },
        error: function (v) {
            alert("error");
        }
    });
}