عملیات CRUD با استفاده از Json, Ado.Net,Stored Procedure
شنبه 9 آبان 1394در این مقاله می خواهیم در مورد عملیات CRUD (چهار عمل اصلی) در asp.net mvc صحبت کنیم ، در این مقاله ما از stored procedure و Json استفاده کردیم .
قدم اول درست کردن پایگاه داده و طراحی جدول است در زیر script های ساخت جدول و Stored Procedure های آن را قرار داده ایم.
اول از همه یک پایگاه داده به نام SampleDB می سازیم .
بعد از ساخت پایگاه داده جدول به صورت زیر را می سازیم:
CREATE TABLE [dbo].[tblCustomer](
[CustID] [bigint] NOT NULL,
[CustName] [nvarchar](50) NULL,
[CustEmail] [nvarchar](50) NOT NULL,
[CustAddress] [nvarchar](256) NULL,
[CustContact] [nvarchar](50) NULL,
CONSTRAINT [PK_tblCustomer] PRIMARY KEY CLUSTERED
(
[CustID] ASC,
[CustEmail] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Stored Procedure:
اول از همه برای برگرداندن اطلاعات از sp زیر استفاده می کنیم:
ALTER PROCEDURE [dbo].[CREATE_CUSTOMER]
-- Add the parameters for the stored procedure here
(
@CustName NVarchar(50)
,@CustEmail NVarchar(50)
,@CustAddress NVarchar(256)
,@CustContact NVarchar(50)
)
AS
BEGIN
---- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
---- Try Catch--
BEGIN TRY
BEGIN TRANSACTION
DECLARE @CustID Bigint
SET @CustID = isnull(((SELECT max(CustID) FROM [dbo].[tblCustomer])+1),'1')
-- Insert statements for procedure here
INSERT INTO [dbo].[tblCustomer] ([CustID],[CustName],[CustEmail],[CustAddress],[CustContact])
VALUES(@CustID,@CustName,@CustEmail,@CustAddress,@CustContact)
SELECT 1
COMMIT TRANSACTION
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000),@ErrorSeverity INT,@ErrorState INT;
SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState);
ROLLBACK TRANSACTION
END CATCH
END
برای اضافه کردن رکورد جدید از sp زیر استفاده نمایید:
ALTER PROCEDURE [dbo].[CREATE_CUSTOMER]
-- Add the parameters for the stored procedure here
(
@CustName NVarchar(50)
,@CustEmail NVarchar(50)
,@CustAddress NVarchar(256)
,@CustContact NVarchar(50)
)
AS
BEGIN
---- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
---- Try Catch--
BEGIN TRY
BEGIN TRANSACTION
DECLARE @CustID Bigint
SET @CustID = isnull(((SELECT max(CustID) FROM [dbo].[tblCustomer])+1),'1')
-- Insert statements for procedure here
INSERT INTO [dbo].[tblCustomer] ([CustID],[CustName],[CustEmail],[CustAddress],[CustContact])
VALUES(@CustID,@CustName,@CustEmail,@CustAddress,@CustContact)
SELECT 1
COMMIT TRANSACTION
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000),@ErrorSeverity INT,@ErrorState INT;
SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState);
ROLLBACK TRANSACTION
END CATCH
END
برای ویرایش رکورد از sp زیر استفاده نمایید:
ALTER PROCEDURE [dbo].[UPDATE_CUSTOMER]
-- Add the parameters for the stored procedure here
@CustID BIGINT
,@CustName NVarchar(50)
,@CustEmail NVarchar(50)
,@CustAddress NVarchar(256)
,@CustContact NVarchar(50)
AS
BEGIN
---- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
---- Try Catch--
BEGIN TRY
BEGIN TRANSACTION
-- Update statements for procedure here
UPDATE [dbo].[tblCustomer]
SET [CustName] = @CustName,
[CustAddress] = @CustAddress,
[CustContact] = @CustContact
WHERE [CustID] = @CustID AND [CustEmail] = @CustEmail
SELECT 1
COMMIT TRANSACTION
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000),@ErrorSeverity INT,@ErrorState INT;
SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState);
ROLLBACK TRANSACTION
END CATCH
END
برای حذف رکورد موردن نظر از sp زیر استفاده نمایید:
ALTER PROCEDURE [dbo].[DELETE_CUSTOMER]
-- Add the parameters for the stored procedure here
@CustID BIGINT
AS
BEGIN
---- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
---- Try Catch--
BEGIN TRY
BEGIN TRANSACTION
-- Delete statements for procedure here
DELETE [dbo].[tblCustomer]
WHERE [CustID] = @CustID
SELECT 1
COMMIT TRANSACTION
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000),@ErrorSeverity INT,@ErrorState INT;
SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState);
ROLLBACK TRANSACTION
END CATCH
END
برای نمایش جزئیات رکورد از sp زیر استفاده می کنید:
ALTER PROCEDURE [dbo].[VIEW_CUSTOMER]
-- Add the parameters for the stored procedure here
@CustID BIGINT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
-- Select statements for procedure here
SELECT * FROM [dbo].[tblCustomer]
WHERE [CustID] = @CustID
END
یک پروژه ی جدید به صورت زیر می سازید:

پنجره ی جدیدی باز می شود که باید MVC را انتخاب نمایید.

وقتی کلیک Ok را بزنید پنجره ای به صورت زیر باز خواهد شد:

گام بعدی ایجاد یک model جدید است، از سمت چپ راست کلیک کرده و گزینه ی Ado.Net Entity DataModel را انتخاب می نمایید.

قدم بعدی جدول مورد نظر را انتخاب نمایید:

حالا به سمت Design UI می روید و ما از یک Partial View برای نمایش لیست استفاده می کنیم.
در قسمت Index.cshtml کد زیر را بنویسید:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<!-- list -->
<div id="resultCust"></div>
<div id="loader" style="text-align: center; display: none; margin-bottom: 20px;">
<img alt="Loading" src="@Url.Content("~/Content/loader.gif")" /> Loading...
</div>
<!-- list -->
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var inProgress = false;
$(document).ready(function () {
//======================Default Load================//
inProgress = true;
$("#loader").show();
$.get("@Url.Action("GetCustomer", "Customer")", { "RowCountPerPage": 5 },
function (data) {
$("#resultCust").append(data);
$("#loader").hide();
inProgress = false;
});
//======================UL SCroll Load================//
var page = 1;
var _inCallback = false;
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
if (page > -1 && !_inCallback) {
_inCallback = true;
page++;
$("#loader").show();
$.get("@Url.Action("GetCustomer_Scroll", "Customer")", { "PageNo": page, "RowCountPerPage": 5 },
function (data) {
if (data != '') {
$("#resultCust").append(data);
}
else {
page = -1;
}
$("#loader").hide();
_inCallback = false;
});
}
}
});
});
</script>
@model IEnumerable<CRUD_MVC5.Models.tblCustomer>
@foreach (var item in Model)
{
<div>
<strong>Name: @Html.DisplayFor(modelItem => item.CustName)</strong>
</div>
<div>
Adddress: @Html.DisplayFor(modelItem => item.CustAddress)
</div>
<div>
@Html.DisplayFor(modelItem => item.CustEmail)
</div>
<div>
@Html.DisplayFor(modelItem => item.CustContact)
</div>
<div>
@Html.ActionLink("Edit", "Edit", new { id = item.CustID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.CustID }, new { @class = "delete", @id = item.CustID })
</div>
<hr />
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('a.delete').click(function (e) {
e.preventDefault();
var CustomerId = e.target.id;
var flag = confirm('You are about to delete Customer ID ' + CustomerId + ' permanently.Are you sure you want to delete this record?');
if (flag) {
$.ajax({
url: '/Customer/Delete',
async: false,
type: "POST",
data: { id: CustomerId },
dataType: "json",
success: function (data, textStatus, jqXHR) {
if (data.Message == 1) {
//alert('Record Deleted!');
$("#" + CustomerId).parent().parent().remove();
window.location.href = '/Customer';
}
else {
alert('Record not Affected to DataBase!!');
}
$("#loader").hide();
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR + "-" + textStatus + "-" + errorThrown);
}
});
}
return false;
});
});
</script>
در این View ما یک شی Json به متد Action میفرستیم، و آن Action متد ،نتیجه ی Resault را بر می گرداند.
@model CRUD_MVC5.Models.tblCustomer
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
<div id="loader" style="text-align: center; display: none; margin-bottom: 20px;">
<img alt="Loading" src="@Url.Content("~/Content/loader.gif")" /> Loading...
</div>
@using (Html.BeginForm(null, null, FormMethod.Post, new { @id = "CustomerForm", @class = "form" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Create Customer</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.CustName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CustEmail, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustEmail, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustEmail, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CustAddress, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustAddress, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustAddress, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CustContact, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustContact, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustContact, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" id="SubmitForm" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#SubmitForm").click(function (e) {
e.preventDefault();
$("#loader").show();
var model_data = {};
model_data.CustName = $("#CustName").val();
model_data.CustEmail = $("#CustEmail").val();
model_data.CustAddress = $("#CustAddress").val();
model_data.CustContact = $("#CustContact").val();
if (model_data.CustEmail != '') {
$.ajax({
url: '/Customer/Create',
async: false,
type: "POST",
data: JSON.stringify(model_data),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
if (data.Message == 1) {
alert('Record Successfully Saved!');
window.location.href = '/Customer';
}
else {
alert('Record not Affected to DataBase!!');
}
$("#loader").hide();
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR + "-" + textStatus + "-" + errorThrown);
}
});
}
else {
return;
}
});
});
</script>
حالا قسمت ویرایش :
@model CRUD_MVC5.Models.tblCustomer
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
<div id="loader" style="text-align: center; display: none; margin-bottom: 20px;">
<img alt="Loading" src="@Url.Content("~/Content/loader.gif")" /> Loading...
</div>
@using (Html.BeginForm(null, null, FormMethod.Post, new { @id = "CustomerForm", @class = "form" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Edit Customer</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.CustID)
<div class="form-group">
@Html.LabelFor(model => model.CustName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustName, "", new { @class = "text-danger" })
</div>
</div>
@Html.HiddenFor(model => model.CustEmail)
<div class="form-group">
@Html.LabelFor(model => model.CustAddress, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustAddress, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustAddress, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CustContact, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustContact, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CustContact, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" id="SubmitForm" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#SubmitForm").click(function (e) {
e.preventDefault();
$("#loader").show();
var model_data = {};
model_data.CustID = $("#CustID").val();
model_data.CustName = $("#CustName").val();
model_data.CustEmail = $("#CustEmail").val();
model_data.CustAddress = $("#CustAddress").val();
model_data.CustContact = $("#CustContact").val();
if (model_data.CustEmail != '') {
$.ajax({
url: '/Customer/Edit',
async: false,
type: "POST",
data: JSON.stringify(model_data),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
if (data.Message == 1) {
alert('Record Successfully Saved!');
window.location.href = '/Customer';
}
else {
alert('Record not Affected to DataBase!!');
}
$("#loader").hide();
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR + "-" + textStatus + "-" + errorThrown);
}
});
}
else {
return;
}
});
});
</script>
حالا قسمت نوشتن کدهای قسمت Controller است، کلیک راست کرده و یک Controller جدیدی را می سازید:

حالا نوبت ساخت یک کنترل برای انجام عملیات CRUD است:
// Customer Controller
public class CustomerController : Controller
{
// GET: Customer
public ActionResult Index()
{
return View();
}
// GET: Customer
[HttpGet]
public ActionResult GetCustomer(int RowCountPerPage)
{
try
{
int PageNo = 0;
int IsPaging = 0;
CrudDataService objCrd = new CrudDataService();
List<tblCustomer> modelCust = objCrd.GetCustomerList(PageNo, RowCountPerPage, IsPaging);
return PartialView("_ListCustomer", modelCust);
}
catch (Exception ex)
{
throw ex;
}
}
// GET: Customer/InfinitScroll
[HttpGet]
public ActionResult GetCustomer_Scroll(int PageNo, int RowCountPerPage)
{
try
{
Thread.Sleep(2000);
int IsPaging = 1;
CrudDataService objCrd = new CrudDataService();
List<tblCustomer> modelCust = objCrd.GetCustomerList(PageNo, RowCountPerPage, IsPaging);
return PartialView("_ListCustomer", modelCust);
}
catch (Exception ex)
{
throw ex;
}
}
// GET: Customer/Create
public ActionResult Create()
{
return View();
}
// GET: Customer/Create
[HttpPost]
public JsonResult Create(tblCustomer objCust)
{
try
{
CrudDataService objCrd = new CrudDataService();
Int32 message = 0;
if ((objCust.CustName != null) && (objCust.CustEmail != null)) message = objCrd.InsertCustomer(objCust);
else message = -1;
return Json(new
{
Success = true,
Message = message
});
}
catch (Exception ex)
{
throw ex;
}
}
// GET: Customer/Edit
public ActionResult Edit()
{
return View();
}
// GET: Customer/Edit
[HttpGet]
public ActionResult Edit(long? id)
{
try
{
CrudDataService objCrd = new CrudDataService();
tblCustomer modelCust = objCrd.GetCustomerDetails(id);
return View(modelCust);
}
catch (Exception ex)
{
throw ex;
}
}
// GET: Customer/Edit
[HttpPost]
public JsonResult Edit(tblCustomer objCust)
{
try
{
CrudDataService objCrd = new CrudDataService();
Int32 message = 0;
message = objCrd.UpdateCustomer(objCust);
return Json(new
{
Success = true,
Message = message
});
}
catch (Exception ex)
{
throw ex;
}
}
// GET: Customer/Delete
[HttpPost]
public JsonResult Delete(long? id)
{
try
{
CrudDataService objCrd = new CrudDataService();
Int32 message = 0;
message = objCrd.DeleteCustomer(id);
return Json(new
{
Success = true,
Message = message
});
}
catch (Exception ex)
{
throw ex;
}
}
}
یک راه ساده تر استفاده از Ado.net و sp است که در web.config می توانید قطعه کد زیر را بنویسد:
<connectionStrings> <add name="dbConn" connectionString="Data source=DESKTOP-4L9DM2J; Initial Catalog=SampleDB; User Id=sa; Password=sa@123" providerName="System.Data.SqlClient"/> </connectionStrings>
حالا نیاز به تعریف یک کلاس است که این کلاس اتصال به بانک را تعریف می کند.
// Database Connection
public class dbConnector
{
private SqlConnection SqlConn = null;
public SqlConnection GetConnection
{
get { return SqlConn; }
set { SqlConn = value; }
}
public dbConnector()
{
string ConnectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
SqlConn = new SqlConnection(ConnectionString);
}
}
برای انجام عملیات چهارگانه ما نیاز به کلاس CrudDataService ، در این کلاس ما پنج متد که با پایگاه داده در ارتباط است را صدا می زنیم به صورت زیر:
// Database Service
public class CrudDataService
{
public List<tblCustomer> GetCustomerList(int PageNo, int RowCountPerPage, int IsPaging)
{
dbConnector objConn = new dbConnector();
SqlConnection Conn = objConn.GetConnection;
Conn.Open();
try
{
List<tblCustomer> _listCustomer = new List<tblCustomer>();
//_listCustomer = null;
if (Conn.State != System.Data.ConnectionState.Open)
Conn.Open();
SqlCommand objCommand = new SqlCommand("READ_CUSTOMER", Conn);
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddWithValue("@PageNo", PageNo);
objCommand.Parameters.AddWithValue("@RowCountPerPage", RowCountPerPage);
objCommand.Parameters.AddWithValue("@IsPaging", IsPaging);
SqlDataReader _Reader = objCommand.ExecuteReader();
while (_Reader.Read())
{
tblCustomer objCust = new tblCustomer();
objCust.CustID = Convert.ToInt32(_Reader["CustID"]);
objCust.CustName = _Reader["CustName"].ToString();
objCust.CustEmail = _Reader["CustEmail"].ToString();
objCust.CustAddress = _Reader["CustAddress"].ToString();
objCust.CustContact = _Reader["CustContact"].ToString();
_listCustomer.Add(objCust);
}
return _listCustomer;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn != null)
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
Conn.Dispose();
}
}
}
}
public tblCustomer GetCustomerDetails(long? id)
{
dbConnector objConn = new dbConnector();
SqlConnection Conn = objConn.GetConnection;
Conn.Open();
try
{
tblCustomer objCust = new tblCustomer();
if (Conn.State != System.Data.ConnectionState.Open)
Conn.Open();
SqlCommand objCommand = new SqlCommand("VIEW_CUSTOMER", Conn);
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddWithValue("@CustID", id);
SqlDataReader _Reader = objCommand.ExecuteReader();
while (_Reader.Read())
{
objCust.CustID = Convert.ToInt32(_Reader["CustID"]);
objCust.CustName = _Reader["CustName"].ToString();
objCust.CustEmail = _Reader["CustEmail"].ToString();
objCust.CustAddress = _Reader["CustAddress"].ToString();
objCust.CustContact = _Reader["CustContact"].ToString();
}
return objCust;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn != null)
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
Conn.Dispose();
}
}
}
}
public Int32 InsertCustomer(tblCustomer objCust)
{
dbConnector objConn = new dbConnector();
SqlConnection Conn = objConn.GetConnection;
Conn.Open();
int result = 0;
try
{
if (Conn.State != System.Data.ConnectionState.Open)
Conn.Open();
SqlCommand objCommand = new SqlCommand("CREATE_CUSTOMER", Conn);
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddWithValue("@CustName", objCust.CustName);
objCommand.Parameters.AddWithValue("@CustEmail", objCust.CustEmail);
objCommand.Parameters.AddWithValue("@CustAddress", objCust.CustAddress);
objCommand.Parameters.AddWithValue("@CustContact", objCust.CustContact);
result = Convert.ToInt32(objCommand.ExecuteScalar());
if (result > 0)
{
return result;
}
else
{
return 0;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn != null)
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
Conn.Dispose();
}
}
}
}
public Int32 UpdateCustomer(tblCustomer objCust)
{
dbConnector objConn = new dbConnector();
SqlConnection Conn = objConn.GetConnection;
Conn.Open();
int result = 0;
try
{
if (Conn.State != System.Data.ConnectionState.Open)
Conn.Open();
SqlCommand objCommand = new SqlCommand("UPDATE_CUSTOMER", Conn);
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddWithValue("@CustID", objCust.CustID);
objCommand.Parameters.AddWithValue("@CustName", objCust.CustName);
objCommand.Parameters.AddWithValue("@CustEmail", objCust.CustEmail);
objCommand.Parameters.AddWithValue("@CustAddress", objCust.CustAddress);
objCommand.Parameters.AddWithValue("@CustContact", objCust.CustContact);
result = Convert.ToInt32(objCommand.ExecuteScalar());
if (result > 0)
{
return result;
}
else
{
return 0;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn != null)
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
Conn.Dispose();
}
}
}
}
public Int32 DeleteCustomer(long? id)
{
dbConnector objConn = new dbConnector();
SqlConnection Conn = objConn.GetConnection;
Conn.Open();
int result = 0;
try
{
if (Conn.State != System.Data.ConnectionState.Open)
Conn.Open();
SqlCommand objCommand = new SqlCommand("DELETE_CUSTOMER", Conn);
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddWithValue("@CustID", id);
result = Convert.ToInt32(objCommand.ExecuteScalar());
if (result > 0)
{
return result;
}
else
{
return 0;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn != null)
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
Conn.Dispose();
}
}
}
}
}
زمانی که برنامه را اجرا بگیرید به صورت زیر خواهد بود:





در این مقاله هدف استفاده از json برای قسمت بالای صفحه و بار گذاری اطلاعات است
- ASP.net MVC
- 2k بازدید
- 1 تشکر