2013-03-13 2 views
-2

У меня есть веб-страница ASP.NET C#, которая имеет DetailsView в режиме обновления. Пользователь вводит что-то и нажимает кнопку для обновления этой записи в базе данных.Ошибка на основе хранимой процедуры Возвращаемое значение

Я хотел бы добавить JavaScript, который выполняет быструю хранимую процедуру и получает возвращаемое значение. Если это возвращаемое значение меньше 1, я бы хотел, чтобы мое обновление DetailsView продолжалось. Если значение больше 1, я хотел бы остановить обновление и отобразить сообщение об ошибке: «ОШИБКА: больше 1».

Как всегда, я ценю любую помощь.

Бен

ответ

0

Я закончил решение этой проблемы обходным путем. Это не мое идеальное решение, но оно работает точно так же.

Я закончил тем, что поставил этот код в своей Page_Load. Он захватывает код пользователя из QueryString, затем запускает SQL-запрос, используя этот код пользователя, чтобы получить одно значение. Если это значение больше 1, страница перенаправляется на страницу с ошибкой.

Опять же, не идеальный, но он служит цели.

protected void Page_Load(object sender, EventArgs e) 
    { 
     //Runs query to determine if returnValue is greater then 1 then redirects if true 
     SqlConnection sqlConnection1 = new SqlConnection("ConnectionString"); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandText = "SELECT COUNT(UID) FROM Table WHERE (USER = @USER)"; 
     cmd.CommandType = CommandType.Text; 
     SqlParameter UserID = new SqlParameter("@USER", Request.QueryString["usr"]); 
     UserID.Direction = ParameterDirection.Input; 
     cmd.Parameters.Add(UserID); 
     cmd.Connection = sqlConnection1; 

     sqlConnection1.Open(); 
     int returnValue; 
     returnValue = Convert.ToInt32(cmd.ExecuteScalar()); 
     sqlConnection1.Close(); 

     if (returnValue > 0) 
     { 
      Response.Redirect("morethanone?usr=" + Request.QueryString["usr"]); 
     } 
    } 
1

Вы можете вызвать метод веб-службы или страницы для выполнения запроса к базе данных и возвращает результат в стороне клиента с помощью Ajax.

Здесь вы найдете ответ с реализацией такой же, как вы хотите здесь: Run Stored Procedure with ajax

1

Вы можете использовать Ajax and Jquery для достижения этой цели. в основном вы бы вызвать метод в коде позади, где вы будете запускать хранимую процедуру и возвращаете сообщение об успешном завершении или ошибки

Jquery является:

$("input[id$='ButtonName']").click(function (e) { 

        $.ajax({ 
         type: "POST", 
         url: "PageName.aspx/FunctionName", 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 

         success: function (msg) { 
          if (msg.d == 'Success') { 
           //do something 
          } 
          else if (msg.d == 'ERROR') { 
           //do something 
          } 
         } 

        }); 

       e.preventDefault(); 
      }); 

и код позади метода будет:

[System.Web.Services.WebMethod] 
public static string FunctionName() 
{ 
    //run store proc and return success or error 
} 
Смежные вопросы