Оповещение от серверной части - PullRequest
0 голосов
/ 06 июля 2018

Это WebMethod, который получает значение из внешнего интерфейса в строке lvl. Позже эта строка проверяется с помощью процедуры getDuplicate, если в базе данных уже есть это значение. Если значение существует, процедура вставки InsertObject не активируется, и если в базе данных такого значения нет, первая процедура возвращает ноль, и процедура вставки будет работать.

В коде все хорошо работает, все, что мне нужно, - это какое-то предупреждающее сообщение из части кода на C #, если вставка прошла успешно и не удалась. Я пробовал так много примеров, и я не могу найти никакого решения: / Может кто-нибудь помочь, пожалуйста?

[WebMethod(EnableSession = true)]
public static void GetCollection(string lvl)
{

    string conn = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
    using (SqlConnection connection = new SqlConnection(conn))

    try
    {
        connection.Open();
        SqlCommand cmdCount = new SqlCommand("getDuplicate", connection);
        cmdCount.CommandType = CommandType.StoredProcedure;
        cmdCount.Parameters.AddWithValue("@ObjekatName", lvl);
        var count = (string)cmdCount.ExecuteScalar();

        if (count == null)
        {
            SqlCommand cmdProc = new SqlCommand("InsertObjekat", connection);
            cmdProc.CommandType = CommandType.StoredProcedure;
            cmdProc.Parameters.AddWithValue("@ObjekatName", lvl);                   
            cmdProc.ExecuteNonQuery();
            //successful alert
        }
        else
        {
          //fail alert
        }
    }
    catch 
    {

    }
    finally
    {
        connection.Close();
    }
    return;
}

Обновление: Ajax, который отправляет значения в метод:

$(function () {

     $('#myButton').on('click', function () {

         var lvl = $('#MainContent_txtProductConstruction').val()

         $.ajax({
             type: "POST",
             url: "NewProductConstruction.aspx/GetCollection",

             data: JSON.stringify({'lvl': lvl }),

             contentType: "application/json; charset=utf-8",
             dataType: "json",

             success: function (response) {
                 alert("Saved successfully.");
                 console.log(response);
                 location.reload(true);

             },
             error: function (response) {
                 alert("Not Saved!");
                 console.log(response);
                 location.reload(true);
             }
         });

     });

 });

1 Ответ

0 голосов
/ 06 июля 2018

Вы можете вернуть объект json. Измените тип возвращаемого метода как string.Include using Newtonsoft.Json;, а затем, когда вы хотите вернуться, создайте объект, подобный этому:

[WebMethod]
public static string GetCollection(string lvl)
{
   bool isInserted = false;
   // set the value of isInserted
   // you can send code a numeric value or bool value according to your need
   var result = new {code = isInserted, message = isInserted ? "Succesfully inserted" : "Already Exists"};
   return JsonConvert.SerializeObject(result);
}

На стороне клиента проверьте ответ

success: function (response) {
          console.log(response);
          if(response != null){
            var data = $.parseJSON(response)
            alert(data.message)
          }
          location.reload(true);
         }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...