2016-08-17 4 views
1

Ajax Call не работает. Когда я нажимаю на btnsubmit, он сначала показывает предупреждение привет, а затем «Запись сохранения в базу данных», но данные не сохраняются в базе данных. Имя хранимой процедуры - «Ajax».Ajax Call не работает с asp.net

Как решить эту ошибку? Заранее спасибо ..

Процедура является:

create procedure Ajax 
    @EmpID nvarchar(50), 
    @EmpName nvarchar(50), 
    @EmpAddress nvarchar(50) 
as 
begin 
    insert into NewEmp (EmpID, EmpName, EmpAddress) 
    values (@EmpID, @EmpName, @EmpAddress) 
end 

Html Страница:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#btnsubmit").click(function() { 
    var EmpID = $('#TxtID').val(); 
    var EmpName = $('#TxtName').val(); 
    var EmpAddress = $('#TxtAdd').val(); 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Default11.aspx/InserData", 
    data: "{'EmpID':'" +EmpID + "','EmpName':'" + EmpName + "','EmpAddress':'" + EmpAddress + "'}", 
    dataType: "json", 
    success: function (response) { 
     alert("Hi");      
     $("#TxtID").val(''); $("#TxtName").val(''); $("#TxtAdd").val(''); 
     alert("Record Save to Databse");   
     }, 
     error: function() { 
     alert("Error"); 
     } 
    }); 
    }); 
    }); 
    </script> 
<div> 

<asp:TextBox ID="TxtID" runat="server" ></asp:TextBox> 
<br /> 
EmpName:-<asp:TextBox ID="TxtName" runat="server"></asp:TextBox> 
<br /> 
Addresss:-<asp:TextBox ID="TxtAdd" runat="server"></asp:TextBox> 
<br /> 
<input type="button" id="btnsubmit" value="Submit" /> 
</div> 

C# Код: -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 
using System.Web.Services; 

public partial class Default11 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    [System.Web.Services.WebMethod] 
    public static bool InserData(string EmpID, string EmpName, string EmpAddress) 
    { 
     SqlConnection scon = new SqlConnection(ConfigurationManager.ConnectionStrings["AjaxInsert"].ConnectionString); 
     try { 
      SqlCommand cmd = new SqlCommand("Ajax",scon); 
      scon.Open(); 
      cmd.CommandType=CommandType.StoredProcedure; 
      cmd.CommandText = "Ajax"; 
      cmd.Parameters.AddWithValue("@EmpID", EmpID); 
      cmd.Parameters.AddWithValue("@EmpName", EmpName); 
      cmd.Parameters.AddWithValue("@EmpAddress", EmpAddress); 

      cmd.Connection = scon; 
      cmd.ExecuteNonQuery(); 

      scon.Close(); 

      // return "success"; 
     } 
     catch(Exception ex) 
     { 
      // return"error"; 
     } 

     return true; 
    } 
} 
+0

проверить формат данных 'data'. Вы можете удалить одинарные кавычки из 'keys' –

+0

Вы отлаживаете код файла C#? Вы передаете правильные значения процедуре? –

+0

удалите 'contentType:" application/json; charset = utf-8 "из вашего скрипта и попробуйте затем. Надеюсь, он будет работать –

ответ

0

Вы проверяли с помощью контрольных точек строки следующую команду ,

"{'EmpID':'" +EmpID + "','EmpName':'" + EmpName + "','EmpAddress':'" + EmpAddress + "'}" 

возвращается на сервер?

Почему не data: { EmpID: EmpID , EmpName: EmpName , EmpAddress: EmpAddress }?

0

вы не можете использовать элементы управления ASP в Java scritpt .becase управления ASP может быть на выход, доступную стороне сервера на стороне, т.е. только .insted серверных contols использовать элементы управления HTML, как показано ниже EmpId: -
EmpName: -
Addresss : -

0

Вы используете asp control для получения входных данных от пользователя. поэтому внесите изменения в код jQuery, как указано ниже. потому что у меня тоже были такие же проблемы. Поэтому я надеюсь, что это поможет вам.

<script type="text/javascript"> 

$(document).ready(function() { 
    $("#btnsubmit").click(function() { 
    var EmpID = $('#<%=TxtID.ClientID%>').val(); 
    var EmpName = $('#<%=TxtName.ClientID%>').val(); 
    var EmpAddress = $('#<%=TxtAdd.ClientID%>').val(); 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Default11.aspx/InserData", 
    data: "{'EmpID':'" +EmpID + "','EmpName':'" + EmpName + "','EmpAddress':'" + EmpAddress + "'}", 
    dataType: "json", 
    success: function (response) { 
     alert("Hi");      
     $('#<%=TxtID.ClientID%>').val(''); 
     $('#<%=TxtName.ClientID%>').val(''); 
     $('#<%=TxtAdd.ClientID%>').val(''); 
     alert("Record Save to Database");   
     }, 
     error: function() { 
     alert("Error"); 
     } 
    }); 
    }); 
    }); 
    </script> 
+0

не работает .... –

+0

, пожалуйста, проверьте, что находится в данных, когда вы вызываете веб-метод – Developer

Смежные вопросы