Merhaba,
ADO.NET uygulaması geliştirerek ADO.NET mimarisini öğrenmeye başlıyoruz.
Visual Studio 2015'i açarak yeni bir Windows Forms projesi açıyoruz.
Form üzerine sol tarafta bulunan Toolbox yardımı ile (eğer kapalıysa açmak için View sekmesinden Toolbox'a tıklayın.) 2 adet buton sürükleyip bırakıyorum.
OPEN butonuma çift tıklayarak "Click" event'imi açıyorum.
Class seviyesinde bir SqlConnection tanımı yapmak istiyorum.
Fakat göründüğü gibi SqlConnection sınıfımızı kullanamıyoruz.
Sebebi ise System.Data.SqlClient namespace'inin windows uygulamamıza yüklü olarak gelmemesidir.
using System.Data.SqlClient ile projemizin namespace alanına ekledikten sonra SqlConnection sınıfını kullanabiliriz.
SqlConnection cnn;
Designer kısmında Form nesnemizin üzerine tıklayarak özelliklerinden (F4 ile açabilirsiniz.) event kısmına gelerek Load event'ini açıyorum.
SqlConnection örneğimi Form nesnemin Load event'inde alıyorum. Yapmak istediğimiz olay form açıldığında form içerisindeki tüm metodlardan ulaşabileceğim bir SqlConnection sınıfı tanımlamak.
C# ile veritabanı arasındaki bağlantıyı SqlConnection sınıfı ile sağlayacağız.
Fakat SqlConnection bizden bazı bilgiler istemektedir;
1-) Hangi sunucuya bağlanıyorum?
2-) Bu sunucu içerisindeki hangi veritabanına bağlanıyorum?
3-) Hangi güvenlik modelini kullanıyorum?
Bu 3 temel soruyu cevaplayarak SQL ile C# dilini konuşturmak için iletişimi başlatmış oluyoruz.
Not-1: SQL Server Management Studio Windows Authentication yaparken Server name yazan yer sizin local çalışma alanınızın adıdır. Her bilgisayarda farklı olabilir.
Not-2: SQL Server'ınız Default Instance kurulu ise Server=localhost veya Server=. ile bağlanabilirsiniz. Eğer Named Instance ise SQL Server'ı kurarken verdiğiniz ismi girmeniz gerekmektedir.
SqlConnectionString yeni başladığınızda unutulabilir bu çok normal fakat ezberlemenize gerek yoktur. bkz. http://www.connectionstrings.com/ lütfen inceleyin.
Open butonumuzun Click event'ine gelip SqlConnection sınıfından aldığımız instance ile connection durumunu kontrol eden işlemler gerçekleştireceğiz.
ConnectionState enum sabiti içerisinde 6 adet Connection durum tipi barındırır ve kullanmakta olduğumuz connection bilgisinin her durumunu kontrol edebilimemizi sağlar.
Close butonumun Click event'ine gelip SqlConnection sınıfından aldığımız instance ile connection durumunu kontrol eden işlemler gerçekleştireceğiz.
Çalıştırmak istediğimiz sql komutunu C# yardımı ile Sql serverınıza SqlCommand sınıfı ile aktarırsınız ve SqlCommand sınıfı sizden 2 adet bilgi ister.
1-) CommandText
2-) Connection
CommandText: Çalıştırmak istediğiniz SQL sorgusu (Örnek; SELECT * FROM Customers)
Connection: CommandText'in hangi Connection ile çalışacağı. Yani hangi SQL Serverdaki hangi veritabanında çalışması gerektiği.
Durumu iyice netleştirmek adına ufak bir örnekle ilerlemek istiyorum.
Taksiye (Taksi SqlCommand sınıfımız olsun) bindiniz (biz ise SQL Sorgusu olalım) ve Avrupa yakasından (Avrupa yakası C#) Anadolu yakasına (Anadolu yakası SQL Server) geçmek istiyorsunuz.
2 köprü var (seçeceğimiz köprü bizim connection sınıfımız olsun) FSM köprüsünden geçip Anadolu yakasına gittiniz. İşte yapmak istediğimiz bağlantı tam olarak bu!
Artık biz sorgularımızı SQL tarafında çalıştırabiliriz. Bunun için 3 tane Execute metodu bulunmaktadır. Bunlar;
1-) ExecuteReader() : Eğer sorgunuz geriye tablo döndürüyorsa (SELECT * FROM Customers)
2-) ExecuteNonQuery() : Eğer sorgunuz INSERT, UPDATE, DELETE işlemleri içeriyorsa.
3-) ExecuteScalar() : Eğer sorgunuz geriye tek bir değer döndürüyorsa (SELECT COUNT(*) FROM Products)
Bir sonraki yazımızda Northwind veritabanı ile örneklerimize devam edeceğiz.
Görüşmek üzere.
3 Comments
You can post comments in this post.
Çok açıklayıcı ve faydalı bir paylaşım olmuş, teşekkürler.
Ebru Özer 9 sene ago
Hiç huyum değildir yorum atmak ama çok açıklayıcı,yalın ve güzel bir yazı elinize sağlık
Mert Çakır 4 sene ago
sade anlaşılır bir yazı olmuş. video değil yazılı okuyup konuyu anlamayı sevenler için ideal bence.. teşekkürler emeğinize sağlık.
fethiye 2 sene ago
Post A Reply