SQL ve .Net işbirliği içerisinde STORED PROCEDURES

Bu derste SQL ve .Net işbirliği içerisinde STORED PROCEDURES'ların incelenmesini ele alalım.

Bu derste SQL ve .Net işbirliği içerisinde STORED PROCEDURES'ların incelenmesini ele alalım.

Öncelikle stored procedures nedir onu açıklayalım. Stored saklanmış olan, belleğe yazılmış, bir köşede duran demektir. Procedure'de zaten Türkçede de var olan prosedür'ü anlatır. Bu prosedür'ler SQL Server üzerinde saklanırlar ve belli bir şablona sahiptirler.
Normalde SQL'e veri ekleyeceğimiz, çekeceğimiz, güncelleyeceğimiz zaman gerekli sql komutlarını kullanır bir cümle oluştururuz. Örneğin:


SELECT * FROM uyeler

UPDATE uyeler SET kolon1="icerik" WHERE kolon2=2

INSERT INTO uyeler(kolon1,kolon2) VALUES ("falan",3)



Gibi...

Ancak stored procedures sayesinde bu komutların yapacağı işi internet sitesini yormadan direkt olarak SQL Server'a yaptırabiliriz. Bunun için öncelikle SQL Server üzerinde bir prosedür yaratmamız gerekir:


CREATE PROCEDURE["ProsedurIsmi"] @deger1  nvarchar,@deger2  int AS INSERT INTO  uyeler(kolon1,kolon2) VALUES ( @deger1,@deger2 )



Köşeli parantez içersinde bulunan kısım bizim daha sonra çağırmak için kullanacağımız prosedürün ismidir. "@" karakterinden sonra yazan kısımsa değişken tanımlamadır. Daha sonrası zaten bildiğiniz sql.
Önemli noktalardan bir tanesi: prosedür ün bir kere oluşturulması yeterlidir. O prosedür oluşturulduktan sonra SQL Server'ınızın Stored Procedures klasörüne saklanacaktır.

Gelelim .net kısmına...
Öncelikle her şeyin .net'i sql'e bağlarken kullandığınız komutlarla aynı olduğunu belirteyim (Tabi birkaç satır ek dışında)

Yani yazacaklarımız şunlar:


SqlConnection con = new SqlConnection("SERVER=localhost;DATABASE=veritabani;UserId=Kullanici;PASSWORD=Sifre;");



SqlCommand komut = new SqlCommand("ProsedurIsmi", con);



komut.CommandType = System.Data.CommandType.StoredProcedure;



        komut.Parameters.Add("@key1", System.Data.SqlDbType. NVarChar);

        komut.Parameters.Add("@key2", System.Data.SqlDbType.Int);



        komut.Parameters["@key1"].Value = "falan";

        komut.Parameters["@key2"].Value = 40;



        komut.ExecuteNonQuery();




Size işlemleri uzatmışız gibi gözükebilir.Ancak daha önceden de bahsettiğim gibi bu işlem direkt olarak SQL Server üzerinde yapıldığı için daha hızlı sonuçlar almanızı sağlayacaktır.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git