2016-08-17 5 views
1

Ajaxコールが機能しません。 btnsubmitをクリックすると、最初にalert hiと "Record Save Database"が表示されますが、データはデータベースに保存されません。ストアド・プロシージャー名は「Ajax」です。Ajaxコールが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' param形式を確認してください。 '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

あなたはJavaでASPコントロールを使用カントは.becase ASPコントロールはのみ、サーバーcontolsの.instedアウト側つまりサーバ側でアクセス可能することができscritpt のEmpID以下のようなHTMLコントロールを使用する: -
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

Webメソッドを呼び出すときに何が入っているか確認してください – Developer

関連する問題