javascript - 使用 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ủ</asp:HyperLink>
</div>
</form>
</body>
这是我在 chrome 中调试时的结果,代码在 ajax 函数中不起作用。发生了什么?:( 在此处输入图片描述
解决方案
使用您的代码中缺少的 [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 + "'}",
推荐阅读
- java - MongoDB:类 java.lang.Double 不能转换为类 java.lang.Long
- linux - 为什么交叉编译Apache(httpd-2.4.46)时会有一些警告?
- sql - 带有 Row_Num 的 CASE
- mongodb - pymongo插入时间戳验证错误
- amazon-web-services - 为 Auto Scaling 组中的所有实例设置通用警报
- flutter - Flutter/Dart:如何在应用启动前等待异步任务?
- autocomplete - PhpStorm 中的 TailwindCSS 自动完成功能不起作用
- unit-testing - 单元测试失败,断言失败:第 17 行:'
':不正确 - mysql - Laravel 查询生成器 - 连接三个表(A 一对多 B,B 一对多 C)
- python - 为同一类返回 False 的 issubclass 的替代方案?