Ada banyak cara untuk memanggil Stored Procedure di ASP.NET yang
dalam hal ini stored procedure nya tersimpan di SQL Server 2008.
Boleh
dengan cara menggunakan ado.net, jadi secara langsung model, stored
procedure yang tersimpan di SQL Server tersebut tergenerate secara
otomatis di aplikasi kita.
Nah, sekarang saya mau membagi bagaimana cara nya jika tidak menggunakan ado.net.
Mungkin seperti ini sederhana nya..
1. Kalau saya, buat pemanggilan stored prodedure nya di model
Misal nya seperti code di bawah ini.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace WebAppSatisfactionOfCustomers.Models
{
public class M_User
{
[Key]
public string Username { get; set; }
public string Password { get; set; }
//method untuk update password user di tabel M_User
public void updatePassword(string username, string password)
{
SqlConnection sqlConn;
SqlCommand cmd;
DBConnector objDBConnector = new DBConnector();
sqlConn = objDBConnector.GetConn();
cmd = objDBConnector.GetCommand();
SqlDataReader rdr = null;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "[dbo].[usp_M_User#UpdatePassword]"; <== ini SP yang dipanggil
cmd.Parameters.AddWithValue("@Username", username);
cmd.Parameters.AddWithValue("@Password", password);
try
{
if (sqlConn.State == ConnectionState.Closed)
sqlConn.Open();
rdr = cmd.ExecuteReader();
}
catch (Exception exp)
{
throw (exp);
}
finally
{
if (sqlConn.State == ConnectionState.Open)
sqlConn.Close();
}
}
}
}
2. nahh, langkah selanjutnya kita tinggal memanggil method-method ini di controller
kira-kira seperti ini,
[HttpPost]
public ActionResult gantiPassword(FormCollection Form)
{
try
{
if (ModelState.IsValid)
{
using (SatisfactionOfCustomersDBContext dc = new SatisfactionOfCustomersDBContext())
{
string Username = Session["LogedUserID"].ToString();
string password = Form["pass"].ToString();
if (Username != null && password != null)
{
string name = Username;
string passworduser = encrypt(password);
user.updatePassword(name, passworduser); <= Method yg dipanggil dari model
return RedirectToAction("Login", "M_User");
}
}
}
}
catch (NullReferenceException ex)
{
throw ex;
}
return View();
}
Silahkan dimodifikasi sesuai kebutuhan masing-masing ya.. :) :)
White
No comments:
Post a Comment