Hi Guys,, I'm get error when save data to database using ajax. When the store prosedure use this working, but just save null value on database. How to solve this, any help could be apriciate.
This is the screen shoot :
1. https://pasteboard.co/Kf41y8G.jpg
2. https://pasteboard.co/Kf421zJ.jpg
3. https://pasteboard.co/Kf42hjui.jpg
What I have tried:
ALTER PROCEDURE [dbo].[spAddDetailPinjamanBuku]
@Kode_Pinjam varchar(50) =null,
@Kode_Buku varchar(50) =null,
@Judul varchar(MAX) =null,
@Penulis varchar(MAX) =null,
@Penerbit varchar(MAX) =null
AS
BEGIN
SET NOCOUNT ON;
Insert Into Detail_Pinjaman
(Kode_Pinjam, Kode_Buku, Judul, Penulis, Penerbit)
Values
(@Kode_Pinjam, @Kode_Buku, @Judul, @Penulis, @Penerbit)
END
if use this store prosedure get error "System.Data.SqlClient.SqlException (0x80131904): Procedure or function 'spAddDetailPinjamanBuku' expects parameter '@Kode_Pinjam', which was not supplied."
ALTER PROCEDURE [dbo].[spAddDetailPinjamanBuku]
@Kode_Pinjam varchar(50),
@Kode_Buku varchar(50),
@Judul varchar(MAX),
@Penulis varchar(MAX),
@Penerbit varchar(MAX)
AS
BEGIN
SET NOCOUNT ON;
Insert Into Detail_Pinjaman
(Kode_Pinjam, Kode_Buku, Judul, Penulis, Penerbit)
Values
(@Kode_Pinjam, @Kode_Buku, @Judul, @Penulis, @Penerbit)
END
This the Controller.cs
[HttpPost]
public JsonResult SaveData_Search_Buku(PinjamanModel pinjamanBuku)
{
AddSearch_Buku(pinjamanBuku);
return Json(pinjamanBuku);
}
private void AddSearch_Buku(PinjamanModel pinjamanBuku)
{
using (SqlConnection con = new SqlConnection(this._configuration.GetConnectionString("db_perpustakaan")))
{
using (SqlCommand cmd = new SqlCommand("spAddDetailPinjamanBuku"))
{
con.Open();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Kode_Pinjam", pinjamanBuku.Kode_Pinjam);
cmd.Parameters.AddWithValue("@Kode_Buku", pinjamanBuku.Kode_Buku);
cmd.Parameters.AddWithValue("@Judul", pinjamanBuku.Judul);
cmd.Parameters.AddWithValue("@Penulis", pinjamanBuku.Penulis);
cmd.Parameters.AddWithValue("@Penerbit", pinjamanBuku.Penerbit);
cmd.ExecuteNonQuery();
con.Close();
cmd.Connection.Close();
}
}
}
Create.cshtml
@using www.si.perpustakaan.Models
@model PinjamanModel
@{
ViewData["Title"] = "Create";
Layout = "~/Views/Shared/AdminDashboard/_Layout.cshtml";
}
<link href="~/lib/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />
<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<script type="text/javascript" src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/assets/plugins/jquery-ui/jquery-ui.js"></script>
<link href="~/assets/plugins/jquery-ui/jquery-ui.css" rel="stylesheet" />
<div class="tab-content">
<div class="tab-pane tabs-animation fade show active" id="tab-content-0" role="tabpanel">
<div class="row">
<div class="col-md-12">
<div class="main-card mb-3 card">
<div class="card-body">
<!--
<div class="modal-header bg bg-success">
<div align="center">
<h4 class="modal-title">Add Data Pinjaman</h4>
</div>
</div>
<hr />
<form asp-action="" asp-controller="" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Kode_Pinjam" class="control-label"></label>
<input asp-for="Kode_Pinjam" id="txtKode_Pinjam" class="form-control" readonly="readonly" />
<span asp-validation-for="Kode_Pinjam" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Tanggal_Pinjam" class="control-label"></label>
<input asp-for="Tanggal_Pinjam" class="form-control" placeholder="Enter Tanggal Pinjam Buku" />
<span asp-validation-for="Tanggal_Pinjam" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Tanggal_Kembali" class="control-label"></label>
<input asp-for="Tanggal_Kembali" class="form-control" placeholder="Enter Tanggal Kembali Buku" />
<span asp-validation-for="Tanggal_Kembali" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Kode_Anggota" class="control-label"></label>
<div class="input-group">
<input asp-for="Kode_Anggota" class="form-control" id="txtKodeAnggota" placeholder="Enter Kode Anggota" required />
<div class="input-group-append">
<button type="button" id="CekNamaAnggota" value="Cari Kode Anggota" class="btn btn-warning" />
</div>
</div>
<span asp-validation-for="Kode_Anggota" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Nama_Anggota" class="control-label"></label>
<input asp-for="Nama_Anggota" class="form-control" id="txtNamaAnggota" placeholder="Enter Nama Anggota" readonly="readonly" />
</div>
<span asp-validation-for="Nama_Anggota" class="text-danger"></span>
</div>
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Kode_Petugas" class="control-label"></label>
<div class="input-group">
<input asp-for="Kode_Petugas" class="form-control" id="txtKodePetugas" placeholder="Enter Kode Petugas" required />
<div class="input-group-append">
<button type="button" id="CekNamaPetugas" value="Cari Kode Petugas" class="btn btn-warning" />
</div>
</div>
<span asp-validation-for="Kode_Petugas" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="position-relative form-group">
<label asp-for="Nama_Petugas" class="control-label"></label>
<input asp-for="Nama_Petugas" class="form-control" id="txtNamaPetugas" placeholder="Enter Nama Petugas" readonly="readonly" />
</div>
<span asp-validation-for="Nama_Petugas" class="text-danger"></span>
</div>
@*Data Buku*@
<div class="col-md-12">
<div class="main-card mb-3 card">
<div class="card-body">
<!--
<div class="modal-header bg bg-primary">
<div align="center">
<h4 class="modal-title">Data Buku</h4>
</div>
</div>
<hr />
<table>
<thead>
<tr>
<th>Kode Buku</th>
<th>Judul</th>
<th>Penulis</th>
<th>Penerbit</th>
</tr>
</thead>
<tbody>
<tr>
<td><input asp-for="Kode_Buku" class="form-control" placeholder="Enter Kode Buku" id="txt_Search_Kode_Buku" name="Kode_Buku" required /></td>
<td><input asp-for="Judul" class="form-control" placeholder="Enter Judul Buku" id="txtJudul" name="Judul" readonly="readonly" /></td>
<td><input asp-for="Penulis" class="form-control" placeholder="Enter Penulis" id="txtPenulis" name="Penulis" readonly="readonly" /></td>
<td><input asp-for="Penerbit" class="form-control" placeholder="Enter Penerbit" id="txtPenerbit" name="Penerbit" readonly="readonly" /></td>
<td><button type="button" id="Btn_Search_Kode_Buku" class=" btn btn-warning btn-sm"></td>
<td><button type="button" onclick="return Btn_Add_Search_Kode_Buku(this);" id="Add_Search_Kode_Buku" class=" btn btn-success btn-sm">^__i class="fa fa-plus"> Add</button></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<div align="center">
<input type="submit" value="Save Data Pinjaman" class="btn btn-success" />
</div>
</div>
<div>
<a asp-action="Index">^__i class="fa fa-arrow-alt-circle-left"> Back to List</a>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" lang="javascript">
$(document).ready(function(){
Btn_Add_Search_Kode_Buku();
});
function Btn_Add_Search_Kode_Buku() {
var _ObjectDetailPinjamanBuku = {
Kode_Pinjam: $('#txtKode_Pinjam').val(),
Kode_Buku: $('#txt_Search_Kode_Buku').val(),
Judul: $('#txtJudul').val(),
Penulis: $('#txtPenulis').val(),
Penerbit: $('#txtPenerbit').val()
}
$.ajax({
url: "@Url.Action("SaveData_Search_Buku", "Pinjaman")",
data: JSON.stringify(_ObjectDetailPinjamanBuku),
type: "POST",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function () {
window.alert('Data berhasil disimpan...');
}
});
}
</script>
<script type="text/javascript" lang="javascript">
$(document).ready(function () {
$('#Btn_Search_Kode_Buku').on("click", function () {
$.ajax({
url: "@Url.Action("Get_DataBukuByID", "Pinjaman")",
type: "GET",
contentType: "application/json;charset=UTF-8",
dataType: "json",
data: { Kode_Buku: $('#txt_Search_Kode_Buku').val() },
success: function (data) {
if (data !="") {
$('#txtJudul').val(data.Judul);
$('#txtPenulis').val(data.Penulis);
$('#txtPenerbit').val(data.Penerbit);
}
else {
window.alert(' error : ' + data.message);
}
}
});
});
});
</script>
<script type="text/javascript" lang="javascript">
$(document).ready(function () {
$("#CekNamaAnggota").click(function () {
$.ajax({
url: "@Url.Action("SearchNamaAnggota", "Pinjaman")",
type:"POST",
data: { Kode_Anggota: $("#txtKodeAnggota").val() },
success: function (data) {
if (data != "") {
$("#txtNamaAnggota").val(data);
}
else {
alert("Kode Anggota tidak ditemukan !!!");
$("#txtKodeAnggota").val("");
$("#txtNamaAnggota").val("");
}
}
});
});
});
</script>
<script type="text/javascript" lang="javascript">
$(document).ready(function () {
$("#CekNamaPetugas").click(function () {
$.ajax({
url: "@Url.Action("SearchNamaPetugas", "Pinjaman")",
type:"POST",
data: { Kode_Petugas: $("#txtKodePetugas").val() },
success: function (data) {
if (data != "")
{
$("#txtNamaPetugas").val(data);
}
else
{
alert("Kode Petugas tidak ditemukan !!!");
$("#txtKodePetugas").val("");
$("#txtNamaPetugas").val("");
}
}
});
});
});
</script>
<script type="text/javascript" lang="javascript">
$("[id*=Tanggal_Pinjam]").attr("ReadOnly", true)
$("[id*=Tanggal_Pinjam]").datepicker(
{
dateFormat: "yy/mm/dd"
});
$("[id*=Tanggal_Kembali]").attr("ReadOnly", true)
$("[id*=Tanggal_Kembali]").datepicker(
{
dateFormat: "yy/mm/dd"
});
</script>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}