首页 > 解决方案 > 使用 ajax 使用 asp.net 将数据保存到 sql server

问题描述

输入数据后,我的ajax函数没有运行。这使我的代码无法在“WebService2.asmx/ThemTaiKhoan”中工作,这使我的数据无法保存到数据库中。有人能帮助我吗?非常感谢。这是我的代码。WebService2.asmx

public string ThemTaiKhoan(string username, string password, string fullname, string email, string dienthoai, string status, string admin)
    {

        string query = "insert into login values (" + username + ",'" + password + "'," + fullname + ",'" + email + "','" + dienthoai + "'," + status + ",'" + admin + "')";

        string CS = ConfigurationManager.ConnectionStrings["Appconnection"].ConnectionString;
        using (SqlConnection con = new SqlConnection(CS))
        {
            SqlCommand cmd = new SqlCommand(query, con);
            con.Open();
            cmd.ExecuteNonQuery();
        }
        return query;
    }

这是 ThemMoi.aspx 上的 JS 代码

<script>
    function ThemTaiKhoan() {
        var username = $("#username").val();
        var password = $("#password").val();
        var fullname = $("#fullname").val();
        var email = $("#email").val();
        var phone = $("#phone").val();
        var status = $("#status").val();
        var admin = $("#admin").val();

        $.ajax({
            type: "POST",
            url: "WebService2.asmx/ThemTaiKhoan",
            data: "{username:" + username + ",password:'" + password + "',fullname:" + fullname + ",email:'" + email + "',phone:'" + phone + "',status:" + status + ",admin:'" + admin + "'}",
            contentType: "application/json; charset=utf-8",
            success: function (ms) {

                location.reload();

            },
            dataType: "json",
        })
    }
</script>

这是 ThemMoi.aspx 上的 HTML 代码

<body>
    <form id="form1" runat="server">
        <div class="container">
            <h2>Nhập thông tin tài khoản</h2>
            <div class="form-group">
                <label for="username">Tên đăng nhập:</label>
                <input type="text" class="form-control" id="username" placeholder="Username" />
            </div>
            <div class="form-group">
                <label for="password">Mật khẩu:</label>
                <input type="password" class="form-control" id="password" placeholder="Password" />
            </div>
            <div class="form-group">
                <label for="fullname">Tên đầy đủ:</label>
                <input type="text" class="form-control" id="fullname" placeholder="Fullname" />
            </div>
            <div class="form-group">
                <label for="email">Email:</label>
                <input type="text" class="form-control" id="email" placeholder="Email" />
            </div>
            <div class="form-group">
                <label for="phone">Điện thoại:</label>
                <input type="text" class="form-control" id="phone" placeholder="Phone" />
            </div>
            <div class="form-group">
                <label for="status">Trạng thái:</label>
                <input type="text" class="form-control" id="status" placeholder="Status" />
            </div>
            <div class="form-group">
                <label for="admin">Admin:</label>
                <input type="text" class="form-control" id="admin" placeholder="Admin" />
            </div>

            <div>
                <input type="submit" value="Thêm" onclick="ThemTaiKhoan()" />
            </div>
        </div>
        <div class="container">
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="TrangChu.aspx">Trang chủ&lt;/asp:HyperLink>
        </div>
    </form>
</body>

这是我在 chrome 中调试时的结果,代码在 ajax 函数中不起作用。发生了什么?:( 在此处输入图片描述

标签: javascriptjqueryhtmlasp.net

解决方案


使用您的代码中缺少的 [WebMethod] 属性进行装饰。

[WebMethod]  
public string ThemTaiKhoan(string username, string password, string 
fullname, string email, string dienthoai, string status, string admin)
    {

        string query = "insert into login values (" + username + ",'" + password + "'," + fullname + ",'" + email + "','" + dienthoai + "'," + status + ",'" + admin + "')";

        string CS = ConfigurationManager.ConnectionStrings["Appconnection"].ConnectionString;
        using (SqlConnection con = new SqlConnection(CS))
        {
            SqlCommand cmd = new SqlCommand(query, con);
            con.Open();
            cmd.ExecuteNonQuery();
        }
        return query;
    }

编辑:您的 json 字符串中缺少单引号。请使用以下代码获取数据

  data: "{username:'" + username + "',password:'" + password + "',fullname:'" + fullname + "',email:'" + email + "',phone:'" + phone + "',status:'" + status + "',admin:'" + admin + "'}",

推荐阅读