как сохранить данные в базе данных с помощью jquery

0

Я новичок в 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";

    }

Скажите, пожалуйста, как я могу это сделать.

  • 1
    Я думаю, ваш код тихо хорошо .. вы получаете какие-либо ошибки в консоли JavaScript?
  • 0
    jQuery на стороне клиента, $.ajax() просто передает значения на страницу, не имеет значения, какой язык получает эти значения. Ваша ошибка, вероятно, на стороне сервера.
Показать ещё 16 комментариев
Теги:
sql-server

3 ответа

0
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>
0

Я тестировал это, и он работает:

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";
        }
    }
}
  • 0
    Я пытаюсь это, но это дает мне эту ошибку в консоли HTTP / 1.1 500 Internal Server Error
  • 0
    Вы вообще отлаживали код, чтобы увидеть, какую именно ошибку вы получаете? Может быть так же просто, как плохая строка подключения.
0

Кажется, ваш JQuery в порядке. Просто убедитесь, что ваш метод вызывается. Вы можете добавить точку останова и отладить ваш метод С#.

В коде С#

SqlCommand cmd = new SqlCommand("insert jquerydata values('" + username + "','" + password + "'", con);

Наверное, вам не хватает ключевого слова "в".

Вы также можете отлаживать свой jquery с помощью ключевого слова "отладчик" и убедиться, что вы отключили опцию отключения отладки сценария в IE--> Интернет Options--> Предварительный просмотр → в режиме просмотра.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню