Получить данные из базы данных SQL, используя JSON и AJAX в ASP.NET - PullRequest
0 голосов
/ 10 октября 2018

У меня есть веб-метод, в котором я выполняю команду SQL (запишу сохраненный процесс после теста) и присваиваю эти значения.

Затем я пытаюсь передать данные в функцию AJAX и заполнить текстовые поля.но он возвращает [объект объекта].Я думаю, что он не достигает моего веб-метода, поскольку он не достигает точки останова.Я убедился, что URL AJAX правильный.

Вот что у меня есть:

C #

public class Club {
    public int ClubID { get; set; }
    public string ClubName { get; set; }
    public string ClubEmail { get; set; }
    public string ClubPassword { get; set; }
}

[System.Web.Services.WebMethod]
public void ClubInfo(int ClubId) 
{
    Club club = new Club();

    SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["MyDbConn"].ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand("select * from [dbo].[tb_ClubDetails] where ClubID = @ClubID", con);
    cmd.Parameters.AddWithValue("@ClubID", ClubId);
    SqlDataReader rdr = cmd.ExecuteReader();
    while (rdr.Read()) {
        club.ClubID = Convert.ToInt32(rdr["ClubID"]);
        club.ClubName = rdr["ClubName"].ToString();
        club.ClubEmail = rdr["ClubEmail"].ToString();
        club.ClubPassword = rdr["ClubPassword"].ToString();
    }
    JavaScriptSerializer js = new JavaScriptSerializer();
    Context.Response.Write(js.Serialize(club));

}

AJAX

$(document).ready(function () {
    $("#btnRetrieve").click(function () {
        getData();
        return false;
    });
    function getData() {
        var clbId = $('#txtID').val();

        $.ajax({
            url: 'AddViewClub.aspx/ClubInfo',
            data: { ClubId: clbId },
            dataType: "json",
            method: 'post',
            success: function (data) {
                $('#txtClubName').val(data.ClubName);
                $('#txtEmail').val(data.ClubEmail);
                $('#txtPassword').val(data.ClubPassword);
            },
            error: function (err) {
                alert(err);
            }
        });

    }
});

Пожалуйста, помогитемне, как я могу успешно передать данные из веб-метода в функцию AJAX и заполнить текстовые поля.Спасибо.

1 Ответ

0 голосов
/ 10 октября 2018

Я получил его на работу, выполнив следующее.Однако я не уверен, что это лучшая практика.Пожалуйста, поправьте меня, если я смогу улучшить свой код ниже

    public class Club
    {
        public string ClubName { get; set; }
        public string ClubEmail { get; set; }
        public string ClubPassword { get; set; }
    }

    [WebMethod]
    public static List<Club> ClubInfo(string id)
    {
        SqlConnection con = new SqlConnection(
        WebConfigurationManager.ConnectionStrings["MyDbConn"].ConnectionString);
        con.Open();
        List<Club> clb = new List<Club>();
        SqlCommand cmd = new SqlCommand("select * from [dbo].[tb_ClubDetails] where ClubID = @ClubID", con);
        cmd.Parameters.AddWithValue("@ClubID", id);
        SqlDataReader rdr = cmd.ExecuteReader();
        while (rdr.Read())
        {
            clb.Add(new Club
            {
                //ClubID = Convert.ToInt32(rdr["ClubID"]),
                ClubName = rdr["ClubName"].ToString(),
                ClubEmail = rdr["ClubEmail"].ToString(),
                ClubPassword = rdr["ClubPassword"].ToString(),
            });

        }
        con.Close();
        return clb;
    }

AJAX

$(document).ready(function () {
    $("#btnRetrieve").click(function () {
        getData();
        return false;
    });
    function getData() {
        var clbId = $('#txtID').val();
        $.ajax({
            type: "POST",
            url: "AddViewClub.aspx/ClubInfo",
            data: "{'id': '" + clbId + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert(response.d);
            },
            error: function (response) {
                alert(response.d);
            }
        });

    }
    function OnSuccess(response) {
        var clb = response.d;
        $(clb).each(function () {
            $('#txtClubName').val(this.ClubName);
            $('#txtEmail').val(this.ClubEmail);
            $('#txtPassword').val(this.ClubPassword);
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...