• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 8/2/2020 11:38:31 PM'Basit' Yazılım Dili
  • 6/25/2020 3:18:13 PMderleme hatası
  • 12/11/2017 4:49:15 PMWindows Hizmeti Hk.
  • 4/23/2016 12:55:33 AMC programlama 2 oyun

Popüler Sorular

  • 5/27/2012 5:49:50 AMAsp.Net ile Date time alana veri ekleyemiiyorum ?
  • 4/2/2012 12:45:18 AM.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 5/12/2012 8:44:49 AMAcil Yardım
  • 5/27/2012 1:46:51 PMveri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LibreOffice
  • LINQ
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Command Class ve Command ile Geriye Tek Değer Döndürmek

Merhaba değerli yazılımcı/programcı arkadaşlar, Bir önceki yazımızda ASP.Net web uygulamalarında örnek bir uygulama üzerinde web.config dosyasından connectionString’i nasıl çekeceğimizi öğrenmiştik.B

25.06.2012

Yazar: Muhammed ÖNAL (Google+)

Kategori: ADO.NET

7010

 ADO.NET & DATA ACCESS CLASSES (Veri Erişim Sınıfları)

COMMAND CLASS (Sınıfı)

Merhaba değerli yazılımcı/programcı arkadaşlar,

Bir önceki yazımızda ASP.Net web uygulamalarında örnek bir uygulama üzerinde web.config dosyasından connectionString’i nasıl çekeceğimizi öğrenmiştik.Bu yazımızda ise yine ADO.Net Erişim Sınıflarından(Data Access Class) command class’ıyla ve detaylarıyla devam edeceğiz.

Command Class’ıyla yapacağımız örnek uygulamamız sonucunda, Command sınıfı ile geriye tek değer veya kayıt kümesi döndürebilecek aşamaya gelmiş olmamız lazım. Ayrıca command sınıfını kullanıp INSERT, UPDATE ve DELETE sorgularını çalıştırarak veri ekleyebilecek, verilerimizi güncelleyebilecek ve silebilecek durumuna geleceğiz.

Haydi, bakalım zaman kaybetmeden veritabanı işlemlerinin bu büyülü dünyasına başlayalım. J

 

En basit tanımıyla Command, Veritabanları üzerinde Stored Procedure (Saklı Yordamlar) ve Sorguları çalıştırmak için kullanılan nesnedir.

Command sınıfı ile bağlantılı (connected) veri ortamlarında işlemlerimizi rahatlıkla yapabiliriz. Bu veri ortamlarında veri üzerinde;

          >> Veritabanından tek değer çekebilir
          >> Sadece okunabilir kayıt kümeleri döndürebilir
          >> Ve Veritabanından SQL Sorguları ile Kayıt görüntüleyebilir, Kayıt ekleyebilir, Kayıt Silebilir, Kayıt Güncelleyebiliriz.

Şimdi dilerseniz, Command Class’ının ADO.Net içindeki Mimarisine (Command Architecture) bakalım:

Command Class Architecture :

 

>> SQL Server .NET Data provider(veri sağlayıcı) için kullanılan Command Nesnesi aşağıdaki gibidir:

System.Data.SqlClient.SqlCommand

>> OLE DB .NET Data Provider (veri sağlayıcı) için kullanılan Command Nesnesi ise aşağıdaki gibidir:

System.Data.OleDb.OleDbCommand
-----------------------------------------------------------------------------------------------------------------------------
SQL için Command nesnesinin 4 yapılandırıcısı vardır.

>> Şimdi en basit default yani varsayılan command nesnesi yapılandırıcısını gösterecek olursak:

C#.net için


SqlCommand sorgu = new SqlCommand();

 

 

 

Vb.net için


Dim sorgu As SqlCommand =  New SqlCommand()

 


>> Varsayılan SQL Command yapılandırıcısını göstermiş olduk. Sıradaki yapılandırıcımız ise SQL sorgu cümlesini ve bu sorgu cümlesinin hangi bağlantı üzerinden çalıştırılacağını gösteren yapılandırıcımız olacaktır.
C#.net için


SqlCommand sorgu = new SqlCommand("Sql Sorgu Cümlemiz", connection);

 

Vb.net için


Dim sorgu As SqlCommand = New SqlCommand("Sql Sorgu Cümlemiz", connection)

 


>> Bir diğer  yapılandırıcımız ise SQL sorgu cümlesi bir string olarak yazılarak, hangi bağlantının kullanılacağı belirtilir ve transaction komutları listelenir.
C#.net için


SqlCommand sorgu = new SqlCommand("Sql sorgu cümlemiz", connection, transaction);

 

Vb.net için

Dim sorgu As SqlCommand = New SqlCommand("Sql sorgu cümlemiz", connection, transaction)

 

 

>> Son olarak belirteceğimiz yapılandırıcımız ise; Sql sorgu cümlesi belirten yapılandırıcıdır:

C#.Net için


SqlCommand sorgu = new SqlCommand("Sql sorgu cümlemiz");

 


Vb.net için


Dim sorgu As SqlCommand =  New SqlCommand("Sql sorgu cümlemiz")

 

 

Evet, değerli yazılım aşığı dostlarım Command nesnesine ait Constructorları yani yapılandırıcılarımızı Vb.Net ve C#.net dilleriyle nasıl bağlantı gerçekleştireceğimizi göstermiş olduk.

Şimdi de Command nesnesine ait Metodlarımızı göstererek bunların ne anlama geldiğini hep birlikte irdeleyelim.

COMMAND SINIFI METOTLARI

Hemen şu soruyu sormamız gerekir.
Peki, biz bu Command Sınıfı metotlarını ne zaman kullanacağız?

Cevap: Command özelliklerine değer girildikten sonra, Command’ı çalıştırmak için aşağıda vereceğimiz tablodaki metotlardan uygun olanı seçeriz.

 


Command

 


Açıklama

 
ExecuteNonQuery

 

 

Command nesnesi üzerinde veri güncelleme, değiştirme ve silme işlemleri yapmak için kullanılır. Bu işlemin sonucunda etkilenen kayıt sayısı geriye döndürür. Komutlar bir sonuç döndürmez.

 

ExecuteScalar


Çalıştırılan Command nesnesinden geriye tek değer döndürmek için kullanılır.
Not: Tek satırlık veri döndüren select komutları için tercih edilmemelidir

 

ExecuteReader


Çalıştırılan Command nesnesinden geriye kayıt kümesi döndürmek için kullanılır.
Örneğin; Tablodan ürünler çağırıldığında bu metot kullanılır. Bu kullanımda geriye döndürülen değer bir DataReader nesnesidir.

 

ExecuteXmlReader


Çalıştırılan Command nesnesinden geriye XML döndürmek için kullanılır. Sadece SQL Server 7.0 ve sonraki versiyonları için kullanılır.

 

Command nesnesi için verdiğimiz metotlarımızı inceledikten sonra, SqlCommand ile ilgili olarak bilinmesi gereken bir diğer önemli konumuz SqlCommand.CommandType özelliğidir. Bu özellikler komut tipini belirler.

 

Mesela, CommandType ile belirtilen seçenek CommandText özelliğinde bulunan notasyonların ne şekilde yorumlanacağını belirler.

 









CommandType

 

 

 



Command nesnesinin tipini belirler. Çalıştırılacak Command’a göre Text, StoredProcedure ve TableDirect seçilir.
-------------------------------------------------------------------------------------------------
Not: TableDirect , SQL tarafından desteklenmez. Sadece OleDbCommand nesnesi tarafından kullanılır

-------------------------------------------------------------------------------------------------

Text: String olarak tanımlanmış SQL sorgu cümlesini çalıştırmak için kullanılır.  (varsayılan olarak kabul edilir)

StoredProcedure:SQL tarafından tanımlanmış olan  Kayıtlı Yordam’ları çalıştırmak için kullanılır.

TableDirect: Tablo kayıtları

 

 

Hatırlatma NOTU:  Access veritabanı için Command tanımlanması şu şekilde olacaktır.

 

C#.net için

OleDbCommand sorgu = new OleDbCommand("Sorgu Cümlemiz", Connection);

 

Vb.net için

Dim sorgu As OleDbCommand =  New OleDbCommand("Sorgu Cümlemiz", Connection)

 

 

COMMAND ile GERİYE TEK DEĞER DÖNDÜRMEK

 

Çalıştırılan Stored Procedure ya da SQL cümlesinden geriye tek değer döndürebiliriz. Peki, Nasıl?

 

Elbette ki, bu tür durumlar için DataSet yerine Command nesnesi kullanacağız.Şimdi hemen bir soru soralım ve ardından da cevabımızı verelim J

 

Soru :  Command nesnesini hangi durumlarda geriye tek değer döndürmek için kullanırız?


Cevap : Command ile geriye tek değer döndüren senaryolara, aşağıdaki örnekler verilebilir.

 

-           Stok tablosundaki toplam stok miktarını geriye döndürmede

-          Ürün tablosundaki toplam kayıt sayını geriye döndürmede

-          Ürün kategorisine göre toplam ürün sayısını geriye döndürme

 

Durumlarında geriye tek değer döndürebiliriz.

 

Yukarıda ki tablolardan birinde açıklamıştık, demiştik ki geriye tek değer döndürmek için kullanacağımız metot;

 

>> OleDbCommand veya SqlCommand nesnesi ile geriye değer döndürmek için, ExecuteScalar metodunu kullanılır.

 

Örnek Uygulama : SqlCommand nesnesinin ExecuteScalar  metodu ile Universiteler tablosundaki toplam kayıt sayısı geri döndürülsün. Ve bu örneğimize ilişkin C#.Net ve Vb.Net kodları aşağıdaki gibidir.

 

C#.Net için

 

Vb.net için

 

 

NOT: ExecuteScalar metodu ile geriye değer döndürmek için, sadece Sum veya Count gibi fonksiyonlar kullanılmaz. Aynı zamanda Select cümlesi veya Stored Procedure ile geriye tek değer döndürülebilir.

Örneklendirmelerimizi ilerleyen yazılarımızda daha zengin bir biçimde ele alacağız değerli yazılımcı dostlarım.

 

Bugünlükte bizden bu kadar diyor ve makalemizin sonuna gelmiş bulunuyoruz. Kafanıza takılan soru işaretleri var ise mail yoluyla sorularınızı iletebilirsiniz.

Yazılım ve Programlama aşkı ile tutuştuğumuz bir sonraki yazımızda görüşmek dileğiyle.

NOT:
Bu makalemizde de gerek yerli gerek yabancı kaynakları tarayarak ve gerek kendi bilgi ve tecrübelerimizden kattığımız Programlama dünyasında ADO. NET ile veri erişim sınıflarından Command Sınıfı ve bu sınıfa ait yapılandırıcıları (constructor) , metodları ve CommandType özelliğini , Command nesnesinden geriye tek değer döndürebilmeyi bir uygulama dahilinde hem Vb.NET hem de C#.Net kod geliştirme ortamlarında göstermiş olduk. Bir sonraki makalemizde diğer sınıflarımızı detaylarıyla işlemeye devam edeceğiz. Programlama dünyasının bu büyülü dünyasına adım atan arkadaşlara yol gösterici olması amacıyla faydalı olması dileğiyle. Bir sonraki makalemizde görüşmek dileğiyle şimdilik hoşça kalın.

Saygılarımla;

Muhammed ÖNAL
Bilgisayar Mühendisi
RFID Sistemleri Uzmanı
BT Yönetişimcisi

Blog:  http://www.muhammedonal.com
Web : http://www.yazilimdilleri.net


Copyright © Muhammed ÖNAL , 2012
 

 

Yazar Hakkında

Muhammed ÖNAL

Muhammed ÖNAL

www.muhammedonal.com

Bilgisayar Mühendisi | RFID Sistemleri Uzmanı | BT Yönetişimcisi | Strateji Planlama ve İş Geliştirme 2015 itibariyle sağlık sektöründe Bilgi Sistemleri Yöneticisi ve Üst yönetim Stratejik Planlama ve İş Geliştirme Koordinatörü pozisyonunda çalışmaktadır.

Sosyal Medya

ORANLAR

  • 7010izleme

Arkadaşlarınla Paylaş

  • Tweet

2 Yorum

Muhammed ÖNAL

Muhammed ÖNAL

25.06.2012

teşekkür ederim üstadım ;)

Veysel Uğur  KIZMAZ

Veysel Uğur KIZMAZ

25.06.2012

Bol açıklamalı ve örnekli, güzel bir makale olmuş, tebrikler :)

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 123776
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 70839
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 51496
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ