|
SqlCommand Nesnesi |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu makalemizde SQLCommand nesnesinin EXECUTE metodlarını
inceleyeceğiz. Bu sırada kodlarımızı C# aracılığı ile yazıp, veritabanı
olarak MS-SQL Server 2000 kullacağız.
SqlCommand nesnesini daha önce ASP’deki Command nesnesi ile
özleştirebiliriz.
Ancak sqlCommand nesnesini Command nesnesinden çok daha
fazla özelliği bulunmakta. Kısaca görev tanımı yaparsak, veritabanı
işlemlerinin yapılabilmesini sağlar. Yani veritabanından kayıt getirmek,
veritabanındaki kayıtları silme, güncelleme, veritabanına kayıt girme
işlemlerde bize aracılık yapar.
ADO.Net dahilinde iki tane Command nesnesi bulunmaktadır.
Bunlardan birisi olan SqlCommand, MS-SQL Server için hazırlanmış Command
nesnesidir. Diğer veritabanları için OleDbCommand nesnesi kullanılır. Bu yüzden
MS-SQL Server açısından performans üst düzeydedir.
Execute metodlarına geçmeden önce birkaç özelliğini
inceleyelim.
Connection :
Çalıştırılacak sql cümlesinin hangi veritabanı bağlantısını
kullanacağını gösterir.
CommandType :
Çalıştırılacak sql cümlesinin tipini belirler.
Text, StoredProcedure, TableDirect değerlerini alır.
Text : Sql cümlesinin çıplak olarak kullanıldığı
özellik
StoredProcedure : Sql cümlesinin Stored Procedure
olarak kullanıldığı özellik
TableDirect : Sql cümlesi yerine direk
olarak tablo ismi verilerek kullanıldığı özellik.
Birden fazla tablo kullanılacak ise, tablo isimleri ,
işareti ile ayrılır.
CommandText :
CommandType özelliği gözönünde bulundurularak sql cümlesi,
stored procedure veya tablo isminin yazıldığı özelik.
CommandTimeout :
Sql cümlesinin çalıştırılması ve cevap dönme süresi için
bekleme zamanını belirtir.
Varsayılan değeri 30’dur. Süre saniye cinsinden verilir.
Transaction :
Çalıştırılan sql cümlesine, oluşturulan transaction nesnesi
bağlanılarak, ADO.NET düzeyinde kontrol yapılması sağlanabilir. Bu uygulamanın bize sağladığı fayda, çalıştırılan sql
cümlesinin, çalıştırılması sonucu oluşan hatalarda geriye dönüş yapılabilmesine
imkan vermesidir.
Çoğunlukla, Insert/Update/Delete işlemlerinde kullanılır.
Parameter :
SqlCommand nesnesi aracılığı ile çalıştırılan Stored
Procedure’lara veri göndermek veya dönen sonucu almak amacı ile kullanılır.
Şimdi de, EXECUTE metodlarımıza bakalım:
ExecuteReader :
Çalıştırılan sql cümlesinden geriye birden çok değer
dönecekse bu metod kullanılır. Çoğunlukla sql cümlesi Select cümlesi ile tercih edilir.
Örneğin, bir arama sonucu dönecek veriler için bu metod
kullanılabilir.
ExecuteScalar :
Çalıştırılan sql cümlesinden geriye sadece bir değer
dönecekse bu metod kullanılır. Örneğin bir update işlemi sonucunda etkilenen kayıtların
adedi döndürülmek istendiğinde dönecek değer sadece bir Integer değeri olduğu
için bu metod kullanılabilir. Yada, herhangi bir
verinin kaydı yapılıyor, bu kayıt yapıldıktan sonra yapılan kaydın ID sinin
bize gerekli olduğunu düşünelim. Bu durumda da dönecek veri tek bir satır ve
kolon olduğu için bu metodu kullanabiliriz.
ExecuteNonQuery :
Çalıştırılan sql cümlesinden geriye veri dönmediğinde bu
metod kullanılır. Yani Update/Delete/Insert işlemi çalıştıracaksanız bu metodu
kullanmalısınız.
ExecuteXmlReader :
Çalıştırılan sql cümleciği sonucu bir XMLReader nesnesi
oluşur. Böylelikle verilerimiz XML formatına dönüşmüş olur.
Şimdi de anlattıklarımız ile ilgili örneklerimize geçelim:
Açıklamalar kod içerisinde verilmiştir.
1. örneğimiz Stored Procedure aracılığı ile veri
gösterimi.
Ornek1.aspx
<%@ Page Language="C#" Debug="true"
%>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient"
%>
2. örneğimiz veri kayıt etme ile ilgili.
İlkönce Stored Procedure’mizin kodlarını verelim.
CREATE PROCEDURE sp_ins_restaurant
@rest_name varchar(100),
@rest_index int,
@Identity int OUT
AS
INSERT INTO
restaurants
(rest_name,
rest_index)
VALUES
(@rest_name,
@rest_index)
SELECT @Identity = @@IDENTITY
GO
Ornek2.aspx
<%@ Page Language="C#" Debug="true"
%>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient"
%>
3. Örneğimiz ExecuteScalar methodunun kullanımı ile
ilgili
CREATE PROCEDURE sp_sel_rest_id
@rest_name varchar(100)
AS
SELECT
rest_id
FROM
restaurants
GO
Ornek3.aspx
<%@ Page Language="C#" Debug="true"
%>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient"
%>
4. Örneğimiz XMLReader metodu ile ilgili
Örnek4.aspx
<%@ Page Language="C#" Debug="true"
%>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient"
%>
<%@ Import Namespace="System.Xml" %>
Eğer XML aracılığı ile tüm veriyi çekmek istiyorsanız,
XMLReader nesnesi içerisinde do-while aracılığı ile dönmeli ve dataSet’inize
her satırını ekleyip, veriyi bu şekilde dbGrid’e göndermeniz gerekli.
Tüm sorularınız için e-posta adresim : [email protected]
Osman N. HÖMEK
Makale:
SqlCommand Nesnesi ADO.NET ve SQL Osman N. Hömek
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|