フォームに詳細を挿入して挿入ボタンをクリックすると、「ユーザーが正常に追加されました」と表示されます。しかし、データはテーブルに挿入されません。また、F12キーを押してブラウザのエラーをチェックしようとすると、オブジェクトconがnullであることが示されます。これを解決するには?事前に感謝Ajax関数は実行されますが、データはデータベースに挿入されません
C#のウェブ方法:
[WebMethod]
public static void InsertData(ConsigneeMast Consignee)
{
using(var scon = new SqlConnection(strConnection))
{
using(var cmd = new SqlCommand())
{
cmd.CommandText = "AddInConsigneeTable";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = scon;
cmd.Parameters.AddWithValue("@Code",Consignee.Code);
cmd.Parameters.AddWithValue("@Name",Consignee.Name);
cmd.Parameters.AddWithValue("@Address1",Consignee.Address1);
cmd.Parameters.AddWithValue("@Address2",Consignee.Address2);
cmd.Parameters.AddWithValue("@Address3",Consignee.Address3);
cmd.Parameters.AddWithValue("@City",Consignee.City);
cmd.Parameters.AddWithValue("@PinCode",Consignee.Pincode);
cmd.Parameters.AddWithValue("@Country",Consignee.Country);
cmd.Parameters.AddWithValue("@TelNo1",Consignee.TelNo1);
cmd.Parameters.AddWithValue("@TelNo2",Consignee.TelNo2);
cmd.Parameters.AddWithValue("@TelNo3",Consignee.TelNo3);
cmd.Parameters.AddWithValue("@EmailID",Consignee.EmailID);
cmd.Parameters.AddWithValue("@ContactPerson",Consignee.ContactPerson);
cmd.Parameters.AddWithValue("@Remark",Consignee.Remark);
}
}
}
のAjax、jQueryのコード:
$(document).ready(function() {
$("#btnInsertInConsignee").click(function() {
var con = {};
debugger;
con.Name = $("#ConsigneeName").val();
con.Address1 = $("#RegOfficeAddress1").val();
con.Address2 = $("#RegOfficeAddress2").val();
con.Address3 = $("#RegOfficeAddress3").val();
con.City = $("#City").val();
con.Country = $("#CountryAddress").val();
con.Pincode = $("#PinCode").val();
con.TelNo1 = $("#TelephoneNo").val();
con.TelNo2 = $("#FaxNo").val();
con.TelNo3 = $("#MobileNo").val();
con.ContactPerson = $("#ContactPerson").val();
con.EmailID = $("#Email").val();
con.Remark = $("#Remark").val();
$.ajax({
type: "POST",
url: "ConsigneeWithBoot.aspx/InsertData",
data: '{Consignee: ' + JSON.stringify(con) + '}',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function() {
debugger;
alert("User has been added successfully.");
debugger;
//window.location.reload();
},
error: function() {
debugger;
alert("Error while inserting data");
}
});
return false;
});
});
SQL Serverのストアドプロシージャ:
ALTER PROCEDURE [dbo].[AddInConsigneeTable]
@Code nvarchar(6) = '',
@Name nvarchar(75),
@Address1 nvarchar(75),
@Address2 nvarchar(75),
@Address3 nvarchar(75),
@City nvarchar(15),
@PinCode nvarchar(10),
@Country nvarchar(40),
@TelNo1 nvarchar(50),
@TelNo2 nvarchar(50),
@TelNo3 nvarchar(50),
@EmailID nvarchar(250),
@ContactPerson nvarchar(75),
@Remark nvarchar(max)
as begin
declare @Totalcount int
declare @Count nvarchar(10)
select @Totalcount = (select COUNT(Code) from ConsigneeMast)
if @Totalcount is null
set @Count = 'A' + CONVERT(nvarchar(10), 1001)
else
set @Count = 'A' + CONVERT(nvarchar(10), 1001 + (@Totalcount))
insert into ConsigneeMast ([Code], [Name], [Address1], [Address2],[Address3], [City], [Country], [Pincode], [TelNo1], [TelNo2], [TelNo3],[ContactPerson], [EmailID], [Remark])
values (upper(@Count), upper(@Name), upper(@Address1), upper(@Address2), upper(@Address3), upper(@City), upper(@Country), upper(@PinCode), upper(@TelNo1), upper(@TelNo2), upper(@TelNo3), upper(@ContactPerson), upper(@EmailID), upper(@Remark))
end
あなたが投稿したものから、 'InsertData'関数は決してExecuteNonQueryコマンドを呼びません。関数はエラーなしで実行されるので、SuccessはAJAX呼び出しによって受け取られます。 –
ありがとうございました...投稿者... –
[AddWithValue()を既に使用していますか?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we)をチェックしてください。 -stop-using-addwithvalue-already /) '.AddWithValue()'の使用を止めます - 予期しない驚くべき結果につながります –