Я новичок в jquery. Я часто делаю свое кодирование в С#, и теперь мне нужно работать с jquery. Я знаю основные из jquery. Всего несколько функций jquery. Но теперь я хочу сделать что-то заранее. Я хочу сохранить обновление, удалив данные в sql-сервере с моей страницы asp.net с помощью jquery. Я попробовал код jquery для этого, но он не работает. Я не могу получить, что такое ошибка, и где я ошибаюсь. Вот мой код jquery, который я использую
<script type="text/javascript">
$(document).ready(function () {
$("#Button1").click(function () {
$.ajax({
type: 'POST',
contentType: "application/json;charset=utf-8",
url: 'Default2.aspx/InsertMethod',
data: "{'username':'" + document.getElementById('txtusername').value + "','password':'" + document.getElementById("txtpassword").value + "'}",
async: false,
success: function (response) {
$('#txtusername').val('');
$('#txtpassword').val('');
alert("record has been saved in database");
},
error: function () {
console.log('there is some error');
}
});
});
});
Я создаю веб-метод в коде С#, где я пишу код для сохранения данных на сервере sql и вызывая этот веб-метод в jquery. Но этот код не работает. Вот мой код на С#
[WebMethod]
public static string InsertMethod(string username, string password)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand("insert jquerydata values('" + username + "','" + password + "'", con);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
return "true";
}
Скажите, пожалуйста, как я могу это сделать.
Write Static method in C# i.e. in aspx.cs page to insert data
[WebMethod]
public static void AddRecord(string username, string password)
{
//SIMPLE SQL QUERY INSERT INTO
{
using(var con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString))
using (var cmd = con.CreateCommand())
{
cmd.CommandText = "INSERT INTO jquerydata(username, password) VALUES(@username, @password)";
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@password", password);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
return "true";
}
}
}
create a html to accept two fields and insert data on click of button
<script src="3.2.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#Button1").on('click', function (e) {
var userDetails = {
username:$('#txtusername').val(),
password: $('#txtpassword').val()
};
$.ajax({
type: "POST",
url: "pagename.aspx/AddRecord",
data: JSON.stringify(userDetails),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnErrorCall
});
function OnSuccess(response) {
var result = response.d;
if (result == "success") {
$("#msg").html("New record addded successfully :)").css("color", "green");
}
}
function OnErrorCall(response) {
$("#msg").html("Error occurs :(").css("color", "red");
}
});
});
</script>
<form id="form1">
<div id="Tree">
<input type="text" id="txtusername" placeholder="username" />
<input type="password" id="txtpassword" placeholder="password" />
<input type="button" id="Button1" value="OK" />
</div>
</form>
Я тестировал это, и он работает:
Default2.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="SO19542105.Default2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>SO19542105: how to save data in database using jquery</title>
<script type="text/javascript" src="Scripts/jquery-1.8.2.js"></script>
<script type="text/javascript">
$(function () {
$("#Button1").click(function () {
$.ajax({
type: "POST",
contentType: "application/json;charset=utf-8",
url: "Default2.aspx/InsertMethod",
data: "{'username':'" + $("#txtusername").val() + "', 'password':'" + $("#txtpassword").val() + "'}",
async: false,
success: function (response) {
$("#txtusername").val("");
$("#txtpassword").val("");
alert("record has been saved in database");
},
error: function () {
console.log("there is some error");
}
});
});
});
</script>
</head>
<body>
<input type="text" id="txtusername" placeholder="username" />
<input type="password" id="txtpassword" placeholder="password" />
<input type="button" id="Button1" value="OK" />
</body>
</html>
Default2.aspx.cs
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Web.Services;
namespace SO19542105
{
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string InsertMethod(string username, string password)
{
using(var con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString))
using (var cmd = con.CreateCommand())
{
cmd.CommandText = "INSERT INTO jquerydata(username, password) VALUES(@username, @password)";
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@password", password);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
return "true";
}
}
}
Кажется, ваш JQuery в порядке. Просто убедитесь, что ваш метод вызывается. Вы можете добавить точку останова и отладить ваш метод С#.
В коде С#
SqlCommand cmd = new SqlCommand("insert jquerydata values('" + username + "','" + password + "'", con);
Наверное, вам не хватает ключевого слова "в".
Вы также можете отлаживать свой jquery с помощью ключевого слова "отладчик" и убедиться, что вы отключили опцию отключения отладки сценария в IE--> Интернет Options--> Предварительный просмотр → в режиме просмотра.
$.ajax()
просто передает значения на страницу, не имеет значения, какой язык получает эти значения. Ваша ошибка, вероятно, на стороне сервера.