【问题标题】:save data to sql server with asp.net using ajax使用 ajax 使用 asp.net 将数据保存到 sql server
【发布时间】:2019-03-05 08:48:48
【问题描述】:

输入数据后,我的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ủ</asp:HyperLink>
        </div>
    </form>
</body>

这是我在 chrome 中调试时的结果,代码在 ajax 函数中不起作用。发生了什么? :( enter image description here

【问题讨论】:

  • 你似乎在'$.ajax`的末尾缺少;
  • 我试过了,但它似乎仍然不起作用:(
  • 记得参数化您的查询,否则小鲍比表会困扰您! xkcd.com/327

标签: javascript jquery html asp.net


【解决方案1】:

试试这个:

data: JSON.stringify({"username" : username, "fullname" : fullname, "email" : email, "phone" : phone, "status" : status, "admin" : admin})

【讨论】:

    【解决方案2】:

    使用您的代码中缺少的 [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 + "'}",
    

    【讨论】:

      【解决方案3】:

      问题在于您的数据选项。格式如下:

      data: {'username:' + username} and so on
      

      【讨论】:

        【解决方案4】:

        请在 ajax 调用中包含错误并对此进行调试。

        success: function (ms) {
            location.reload();
        },
        error: function(jqXHR, textStatus, errorThrow) {
             debugger;
             console.log(errorThrow);
        }
        

        【讨论】:

          【解决方案5】:

          尝试以这种格式发送数据

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

          或者用这种方式让你的代码更有条理和清晰

              <script>
              function ThemTaiKhoan() {
                  var adminInfo= {
          
                  username = $("#username").val();
                  password = $("#password").val();
                  fullname = $("#fullname").val();
                  email    = $("#email").val();
                  phone    = $("#phone").val();
                  status   = $("#status").val();
                  admin    = $("#admin").val();
                 };
          
              $.ajax({
                  type: "POST",
                  url: "WebService2.asmx/ThemTaiKhoan",
                  data: adminInfo,
                  contentType: "application/json; charset=utf-8",
                  success: function (ms) {
          
                      location.reload();
          
                  },
                  dataType: "json",
              })
          }
          

          //控制器代码

          public class adminInfo
          {
             public string username;
             public string password;
             public string fullname;
             public string email;
             public string dienthoai;
             public string status;
             public string admin;
          }
             public string ThemTaiKhoan(adminInfo adminIfo)
          {
          
              string query = "insert into login values (" + adminIfo.username + ",'" + adminIfo.password + "'," + adminIfo.fullname + ",'" + adminIfo.email + "','" + adminIfo.dienthoai + "'," + adminIfo.status + ",'" + adminIfo.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;
          }
          

          【讨论】:

            猜你喜欢
            • 2018-06-07
            • 2011-04-02
            • 1970-01-01
            • 1970-01-01
            • 2020-02-03
            • 2014-02-14
            • 1970-01-01
            • 2021-03-08
            • 2020-08-02
            相关资源
            最近更新 更多