• 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

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri 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ı
  • LINQ
  • LibreOffice
  • 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

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

Merhaba değerli yazılımcı / programcı arkadaşlar; Bir önceki yazımızda ADO.Net teknolojisinden ve nimetlerinden bahsetmiştik. Ve ADO.Net Data Provider’ları (Veri Sağlayıcıları) hakkında bilgi edinmiş

24.06.2012

Yazar: Muhammed ÖNAL (Google+)

Kategori: ADO.NET

7290

 ADO.NET DATA ACCESS CLASS’ları

( VERİ ERİŞİM SINIFLARI )

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

Bir önceki yazımızda ADO.Net teknolojisinden ve nimetlerinden bahsetmiştik. Ve ADO.Net Data Provider’ları (Veri Sağlayıcıları) hakkında bilgi edinmiştik. Bu yazımızda ise bir önceki yazımızda bahsettiğimiz ADO.NET Temel Sınıflarından Veri Erişim (Data Access) class’larını örneklendirmeler çerçevesinde göstereceğiz.

 

ADO.NET & DATA ACCESS (Veri Erişim) SINIFLARI

Veriyi yöneten uygulamalar, bu verilerin içinde bulunduğu kaynaklara bağlanma gereksinimi duyarlar. VB.Net veya C#.Net  ile veri kaynağına(data source) bağlanmak için, kaynağın tipine ve yapısına göre farklı nesneler ve farklı data provider(veri sağlayıcı)’lar kullanılırlar.

Yukarıda dikkat ettiyseniz eğer, hem C#.Net hem de VB.Net ifadesini kullandım. Evet aslında bu platformumuzda .NET’in destek verdiği tüm dilleri yazabilirdik ama biz örneklendirmelerimizi Vb.Net & C#.Net üzerinden belirteceğiz. Her iki programlama dili ile örneklendirmelerimizi yazımız içinde bulabileceksiniz.

Yazımızın sonunda elbette hakkında bilgi sahibi olacağınız ve uygulama geliştirebileceğiniz başlıkları şu şekilde sıralayabiliriz:

{C}-          Kullanacağımız farklı veritabanlarına göre data provider(veri sağlayıcı)seçebilecek,

{C}-          Bağlantı cümlesi oluşturabilecek

{C}-          {C}Ve kullanacağımız farklı veritabanları için Connection nesnelerini rahatlıkla yönetebileceğiz.

Buraya kadar okuduysanız. Hemen ardından bu soruyu sormanız gerekir.

Evet, uygulamamızı geliştirdik ve bunu bir veritabanına bağlamamız gerekir.

SORU: Peki, Farklı veritabanlarına göre uygun Data Provider(Veri Sağlayıcı) seçmemizde ki en önemli kriter nedir?

Cevap:  Elbette ki cevap çok basit. Hangi Data Provider (Veri Sağlayıcı ) en iyi performansı veriyorsa tabiî ki onu seçmemiz gerekecek.

 

Data Provider Classes (Veri Sağlayıcı Sınıfları)

.NET Framework içindeki Veri Sağlayıcıları(Data Provider), System.Data.dll içindeki System.Data namespace’inde yer alır.

 

Aşağıdaki tabloyu dikkatlice incelersek, bu tablo bizlere hangi veritabanına hangi data provider namespace ile bağlanacağımızı gösteriyor:

 


Veri Tabanı (Database)

 


Data Provider namespace

SQL Server 7.0 ve sonraki sürümler

System.Data.SqlClient

 

SQL Server 6.5 ve önceki sürümler

System.Data.OleDb

 

Microsoft Access veritabanı

System.Data.OleDb

 

Oracle Server

System.Data.OracleClient

 

Diğer veritabanları(Oracle, Sybase)

System.Data.OleDb

 

 

NOT :

ODBC .NET Data Provider’lar , diğer data provider’lardan  farklı olarak, veri kaynağına (data source) bağlanırken hiçbir ara katman kullanmaz. Bunun yerine, bağlantı için ODBC API.leri kullanır.

 

Evet değerli arkadaşlar, şimdide dilerseniz. ADO.Net ile başladığımız ilk makalemizde kullandığımız bir figüre tekrardan burada göz gezdirip hatırlatmalarda bulunalım:

 

Figürümüz şu şekildeydi. Ve Veri ortamlarında kullandığımız veri sağlayıcılarımızın sınıf isimleri mevcuttu. Evet dilerseniz şimdi bu veris sağlayıcılarımızın sınıf isimlerinin ne anlama geldiğini irdeleyelim.

 

 

Bunun için hemen bir tablo daha oluşturup bu tablo içinde Veri Sağlayıcılarımızın sınıf isimlerini yazalım:

 


Class ( Sınıf )


Açıklama

 

 

XXXConnection


Bağlantı açmak ve kapatmak için kullanılan sınıftır.

 

        XXXCommand


Veritabanı üzerinde Stored Procedure (Saklı Yordamlar) veya

SQL cümleleri çalıştırmak için kullanılan sınıftır

 

        XXXDataReader


Veritabanından sadece okunur ve ileri hareketli kayıtlar çekmek

için kullanılan sınıftır.

 

        XXXDataAdapter


Veritabanından çekilen verileri DataSet içine veya

DataSet’e çevrimdışı eklenmiş verileri veritabanına aktarmak

için kullanılan sınıftır.

 

.NET Framework data provider’ları yukarıdaki tabloda belirtilen sınıfları kullanır. Sınıf isimlerinin önündeki XXX ön eki kullanılan Data Provider ismini simgeler. Eğer veritabanına OLEDB  Data Provider ile bağlanılırsa OLEDB ön ekini, eğer SQL Server Data Provider ile bağlanıyorsa SQL ön ekini alır.

 

Aşağıdaki figürümüzü inceleyebilirsiniz.

 

 

System.Data.SqlClient namespace içinden çevrimiçi bağlantılar geliştirmek için SqlConnection, SqlCommand, SqlDataReader sınıfları kullanılır.

 

-      SqlConnection; MsSQL Server üzerinde bağlantı açmak ve kapatmak için kullanılan sınıftır.

-      SqlCommand; MsSQL Server üzerinde Stored Procedure (Saklı Yordamlar) veya SQL cümleleri çalıştırmak için kullanılan sınıftır.

-      SqlDataReader; MsSQL Server üzerinde SqlCommand ile birlikte çalıştırılan SELECT sorgularının sonuçlarını geri döndürmek için kullanılan sınıftır.

 

System.Data.SqlClient namespace içinden çevrimdışı bağlantılar geliştirmek için SqlConnection, SqlDataAdapter, DataSet sınıfları kullanılır.

 

-     SqlConnection; MsSQL Server üzerinde bağlantı açmak ve kapatmak için kullanılan sınıftır.

-     SqlDataAdapter; MS SQL Server.dan çekilen verileri DataSet içine ve DataSet’e çevrimdışı eklenmiş verileri MS SQL Server’a aktarmak için kullanılan sınıftır.

-      DataSet; SQLDataAdapter nesnesinden gelen kayıtları çevrimdışı depolamak ve yönetmek için kullanılan sınıftır.  DataSet tüm Data Adapter sınıfları için ortaktır.

 

BAĞLANTI CÜMLESİ OLUŞTURMAK

>> CONNECTION String (Sınıfı)

        Bağlantı cümlesi, Veri Kaynağına(Data Source) bağlanmak için gerekli bilgileri tutar.

        Özellikle web tarafında düşündüğümüzde dinamik uygulamaların temelini oluşturan veritabanı işlemlerinde, ASP.Net uygulamalarının veritabanı ile bağlantı kurması Connection nesnesi ile gerçekleşir. Bu cümle, veri kaynağına(data source) bağlantı kurmak için gerekli bağlantı parametrelerin birleşiminden oluşur.

        Bir connection nesnesi oluşturduğumuz zaman, veritabanının konumu, hangi veritabanı olduğu, kullanıcı adı ve şifresi gibi bilgilerin tamamını belirtebiliriz.

        Bu parametreleri bir tablo halinde belirtirsek daha basit bir şekilde idrak etmemizi sağlayacaktır.

Parametre

Açıklaması veya Tanımı

Provider

Sadece OleDbConnection nesnelerinde kullanılır. Bağlantı sağlayıcısının ismini tutar.

ConnectionTimeout veya  Connect Timeout

Veritabanı bağlantı için beklenmesi gereken maksimum Saniye sayısıdır. Varsayılan değer 15 saniyedir.

Initial Catalog

Veritabanının Adı

Data Source

SQL Server adı veya MS Access veritabanı için dosya adı

Password (pwd)

SQL Server login parolası

User Id (uid)

SQL Server login adı

Integrated Security veya Trusted

SQL sunucusuna Windows hesabı ile bağlantı yapılacağını belirtir. True, False veya SSPI girilebilir.

Connection

SSPI, True ile eş anlamlıdır ve bu durumda Windows hesabı kullanılır.

Persist Security Info

Varsayılan değeri False olur. Bu durumda güvenlik için hassas bilgileri geri döndürmez. True olduğunda ise güvenlik risk taşımaya başlar.

 

Evet değerli arkadaşlar tablomuzda da gördüğünüz gibi bağlantı cümlesi tanımladığımızda karşımıza çıkan parametrelerin tanımını ve açıklamasını yapmış olduk. Ve bunların ne anlama geldiği hakkında fikir sahibi olduktan sonra gelin hep birlikte Vb.NET’de veya C#.Net’de veya ASP.Net web uygulamalarımızda kullanacağımız bağlantı cümlesini tanımlayarak kullanalım.

Veritabanı Bağlantı cümlesi connectionString isimli bir string ile belirtilir. connectionString  bağlantı cümlesi için bir çok yazım şekli mevcut olduğundan dolayı biz en çok kullanılan SQL Server’ın üzerine kuruluğu olduğu Sunucu işletim sistemine ait kullanıcı hesabı ile bağlantı gerçekleştireceğiz.

Yeni bağlantı oluşturmak ve yönetmek için OleDbConnection, SqlConnection gibi XXXConnection sınıfları kullanılır. Veri kaynağına bağlanmak için oluşturulan bağlantı cümlesi, XXXConnection sınıfının connectionString özelliğine atanır.

 

Bu durumda bağlantı cümlemiz aşağıdaki gibi tanımlanır:

Standart Güvenlik: Bu bağlantı cümlemiz verilerin bulunduğu veritabanı yönetim sistemindeki kullanıcı bilgileri kullanılarak bağlantının gerçekleşmesini sağlar.

 

string  connectionString = “Data Source=localhost; Initial Catalog=myDataAccess;” “User Id=Muhammed; Password=123456”;

 

 

Not: Kullandığımız veritabanı yönetim sistemine göre(database management system) çeşitli conncetionString tanımlamalarını http://www.connectionstrings.com web adresinden bulabilirsiniz.

 

Şimdi Vb.NET için SQL Server veritabanı için bir bağlantı cümlesi oluşturalım. Localhost isimli serverda bulunan myDataAccess  veritabanına, muhammed kullanıcı ismi ve 123456 parolası ile bağlanılıyor. Eğer veritabanı Server’ından 60 saniye içinde cevap alınamazsa bağlantı iptal ediliyor.

 

Dim string as New System.Data.SqlClient.SqlConnection()

string.connectionString = "User ID=muhammed;"  "Password=123456;" "Initial Catalog=myDataAccess;" "Data Source=localhost;" "Connection TimeOut=60;"

 

 

 

Evet değerli arkaaşlar bu kısa tanımlamaları verdikten sonra , hemen bir web uygulaması üzerinde (ASP.NET) hem Vb.net hem de C#.net ile örneklendirdiğimiz bir bağlantı cümlesi oluşturarak bu bağlantımızın detaylarını inceleyelim.

 

Örnek uygulama: 

Visual Studio ile bir web uygulaması açarak sayfamıza bir adet Button kontrolü ekleyelim ve Button kontrolünün Click() olayında veritabanı ile istediğimiz bağlantımızı gerçekleştirelim . (Örnek uygulamamız yukarıda da belirttiğimiz gibi hem Vb.NET hem de C#.Net ile gösterilecektir)

Baglanti.aspx

 

Baglanti.aspx.cs

 

Yukarıda gördüğünüz gibi öncelikle Connection için gerekli namespace tanımlamalarını yaptık.

using System.Data.SqlClient;

using System.Data;

 

Ardından SqlConnection’ın instance’ını yani örneğini alarak baglanti isimli bir connection yazdık. Bu kısımdaki diğer özelliklerin açıklamalarına yukarıda tablo halinde ulaşabilirsiniz.

NOT:  Dikkat edecek olursanız, Data Source kısmında (.) yani nokta kullandık. Bunun anlamı bulunduğu sunucuda (serverda) anlamındadır. Bu kısımda aynı zamanda SQL server ismi ve ip adresi berlirtilebilinir. ( bakınız ip adresinin belirtilme şekli için; http://www.connectionstrings.com/ )

Sanki şu soruyu sorduğunuzu duyar gibiyim:

Peki, neden burada User Id ve password (pwd ) kullanmadık?

{C}-          Evet, kullanmamış olsak da kullanılabilinirdi. Kullanımı size kalmış.

>>  Yazımızın başında da açıkladığımız gibi veri kaynaklarına ulaşabilmek için bağlantımızın açık olması gerekir. Bağlantımız sürekli olarak açık olursa bu da kaynakların tüketildiği anlamını taşımış olur. Veri kaynaklarının doğru ve ideal kullanımı için bağlantımızın sadece veritabanı kullanıldığı zaman açık olması gerekir.

Bağlantılarımızın durumunu SqlConnection.State özelliği ile kontrol ettik. ConnectionState.Open() metodu ile bağlantımızı açtık ve ConnectionState.Close() metodu ile bağlantımızı kapattık.

İşte bu kadar.

Şimdide yaptıklarımızı Vb.NET ile gösterek yapılan açıklamaları aynen burada da kullanacağımızı hatırlatalım.

Baglanti.aspx

 

Baglanti.aspx.vb

 

Namespace tanımlamasında VB.Net için Imports yazdık.

Imports System.Data.SqlClient

Imports System.Data

 

 

Evet, arkadaşlar VB.NET içinde kodlarımız bu şekildedir. Dediğimiz gibi açıklamalar aynen bunun içinde geçerlidir.

Ve bir yazımızın da daha sonuna gelmiş bulunmaktayız değerli yazılımcı dostlarım.

Bir sonraki makalemizde ise ConnectionString’i WEB.CONFİG dosyasından nasıl çekeceğimizi göstermiş olacağız.

NOT:
Bu makalemizde de gerek yerli gerek yabancı kaynakları tarayarak Programlama dünyasında ADO. NET ile veri erişim sınıflarını ve bu sınıflardan Connection Sınıfını örnek 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

  • 7290izleme

Arkadaşlarınla Paylaş

  • Tweet

2 Yorum

Muhammed ÖNAL

Muhammed ÖNAL

25.06.2012

Tavsiyleriniz için teşekkür ederim üstad. ilerleyen makalelerimizde konular hakkında fikir edindikten sonra kesinlikle örnek projelerimiz içinde classlarla gerçekleştireceğimiz veritabanı işlemleri uygulamalı yazılarımız da gelecektir. saygılarımla

Veysel Uğur  KIZMAZ

Veysel Uğur KIZMAZ

24.06.2012

çok güzel ve açıklayıcı bir makale olmuş, elinize sağlık. Veritabanı işlemlerini classlarla gerçekleştirip tek noktada yönetimi konusuna da değinirseniz süper olur. Örnekte yaptığınız button_click'te bağlantı açma şekilde geliştirilen yazılımlarla farkının daha iyi anlaşılacağı düşüncesindeyim.

Yorum Yaz / Soru Sor

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

Son Yorumlar

  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...
  • Merhaba download linki çalışmıyor. Rica et...
  • Nevzat Bey selamlar, Açıkçası bizler a...
  • Parametreleri Cache İşleminden Yalıtma kon...

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

  • 120031
  • 0
Hakan Keskin

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

17.12.2013

  • 65116
  • 0
batuhan avlayan

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

02.09.2013

  • 48278
  • 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İŞİ