Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Osman N. Hömek
Osman N. Hömek
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
2 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  ADO.NET/SQL Osman N. Hömek
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 24.7.2003
Okunma Sayısı : 52970
Yorum Sayısı : 5     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 29.3.2024
Turhal Temizer
Mac OS/X Removing CUDA 29.3.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 29.3.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 29.3.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
SqlCommand Nesnesi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
  • Yazılan Yorumlar
  • Yorum Yaz
ARA
2
2006
ewet biraz düzenleme gerekiyor... öncelikle şu satırları using System.Data.SqlClient using System.Data.SqlTypes using Microsoft.SqlServer.Server using System.Data.Sql işletiniz... SqlConnection dbConn = new SqlConnection(WebConfigurationManager.ConnectionStrings[SEYAHATConnectionString].ConnectionString) dbConn.Open() SqlCommand sqlComm = new SqlCommand(personel_newcount, dbConn) sqlComm.CommandType = System.Data.CommandType.StoredProcedure sqlComm.Parameters.Add(@PERS_ID, SqlDbType.VarChar, 20, PERS_ID) sqlComm.Parameters[@PERS_ID].Value = TextBox1.Text sqlComm.ExecuteNonQuery() dbConn.Close() paremetre çağırmak için bu kodlar yeterli oluşturulan procedure kodlarını vermektede fayda görüyorum... CREATE PROCEDURE [dbo].personel_newcount @PERS_ID nvarchar(20), @TC_NO int, @EHLIYET_SINIF nvarchar(2), @PERS_ADI nvarchar(30), @PERS_SOYADI nvarchar(30), @EV_TEL nvarchar(20), @CEP_TEL nvarchar(20), @ADRES1 nvarchar(50), @ADRES2 nvarchar(50), @ADRES3 nvarchar(50), @PERS_TUR nvarchar(20) AS BEGIN IF( @PERS_ID IS NULL ) SELECT @PERS_ID = NEWID() ELSE BEGIN IF( EXISTS( SELECT PERS_ID FROM dbo.personel WHERE @PERS_ID = PERS_ID ) ) RETURN -1 END INSERT dbo.personel (PERS_ID,TC_NO, EHLIYET_SINIF, PERS_ADI, PERS_SOYADI, EV_TEL, CEP_TEL, ADRES1, ADRES2, ADRES3, PERS_TUR) VALUES (@PERS_ID, @TC_NO , @EHLIYET_SINIF, @PERS_ADI, @PERS_SOYADI, @EV_TEL, @CEP_TEL, @ADRES1, @ADRES2, @ADRES3, @PERS_TUR) RETURN 0 END GO bikaç düzenlemeyle sağlıklı bir kod haline geldiğini söyleyebilirim..
AĞU
9
2005
Örnekler kopyala yapıştır ile çalışmıyor. Düzenleme gerekiyor. Yeni öğrenen biri için biraz can sıkıcı durum ama yine de hazırlayanın ellerine sağlık.
KAS
3
2004
gerektiği kadar kısa ve öğretici bir makale
EYL
7
2004
hoş!
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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