Wednesday 28 January 2015

Stored Procedure in ASP.NET (MVC 5)

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