C# ile kurumsal ya da masaüstü uygulama geliştirirken veritabanı bağlantısı kurmak temel becerilerden biridir. Kullanıcı kayıtları, siparişler, ürün listeleri ve rapor ekranları gibi pek çok yapı sağlam bir veri erişim katmanına dayanır.
Bağlantı kurmayı yalnızca connection string yazmak sanmak büyük yanılgıdır. Asıl mesele; bağlantının açılması, komutun doğru şekilde yürütülmesi, verinin güvenli biçimde alınması ve kaynakların doğru zamanda kapatılmasıdır.
Kısa cevap: Bağlantı açma, sorgu yürütme ve sonucu uygulamaya taşıma.
Konu özeti
| Başlık | Özet |
|---|---|
| Odak nokta | Bağlantı açma, sorgu yürütme ve sonucu uygulamaya taşıma |
| Öğrenilecek yapılar | SqlConnection, SqlCommand, SqlDataAdapter ve DataTable |
| En kritik uyarı | Parametresiz ve dağınık sorgu yazımı güvenlik ve bakım sorunu üretir |
Bağlantı katmanı nasıl düşünülmeli?
SqlConnection, uygulama ile SQL Server arasındaki veri yolunu kurar. Sunucu bilgisi, veritabanı adı ve doğrulama ayrıntıları bu nesne üzerinden tanımlanır. Ancak asıl önemli nokta, bağlantının yalnızca gerektiği süre boyunca açık tutulmasıdır.
Bu yüzden using bloğu kritik öneme sahiptir. using, iş bittiğinde dış kaynağın düzgün şekilde serbest bırakılmasını kolaylaştırır ve bağlantı sızıntılarını azaltır.

Sorgu çalıştırma ile veri alma aynı şey değildir
INSERT, UPDATE ve DELETE işlemleri veritabanında değişiklik yapar. SELECT ise veri döndürür. Bu iki davranışı uygulama katmanında net biçimde ayırmak gerekir. Bir işlemin etkilenen satır sayısını döndürmesi ile tablo sonucu üretmesi aynı senaryo değildir.
SELECT sonucu kullanıcı arayüzünde tablo olarak göstermek istediğinizde DataTable pratik bir ara yapı sağlar. Bu nesne satır ve sütun mantığıyla veriyi bellekte tutar.
using Microsoft.Data.SqlClient;
using System.Data;
string cs = "Server=.;Database=MarketDB;Trusted_Connection=True;";
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
string sql = "SELECT Id, Ad, Fiyat FROM Urunler";
using (SqlDataAdapter da = new SqlDataAdapter(sql, con))
{
DataTable dt = new DataTable();
da.Fill(dt);
}
}
Güvenlik ve bakım kalitesi nasıl korunur?
Veri erişim katmanında parametreli sorgu kullanmak, hem okunabilirliği hem de güvenliği artırır. Kullanıcıdan gelen değeri doğrudan sorgu metnine eklemek kısa vadede kolay görünse de uzun vadede risklidir.
Ayrıca bağlantı, sorgu ve arayüz güncelleme işlerini tek bir yöntem içinde toplamak yerine katmanlı düşünmek bakım maliyetini düşürür.
- Bağlantıları using bloğu içinde yönetin.
- Veri değiştiren işlemler ile veri getiren işlemleri ayırın.
- Parametreli sorgu kullanımını standart hâline getirin.
- UI kodu ile veri erişim kodunu aynı noktada karıştırmayın.

Sık yapılan hatalar
- Bağlantıyı açık bırakmak
- Kullanıcı girdisini doğrudan SQL metnine eklemek
- Tüm işlemleri tek uzun metotta toplamak
- DataTable kullanımını veritabanı tasarımının yerine koymak
Sık sorulan sorular
DataTable her zaman gerekli mi?
Hayır. Ancak tablo sonucunu bellekte tutup ekranda göstermeniz gerektiğinde çok kullanışlıdır.
using neden önemlidir?
Çünkü dış kaynakların iş bittiğinde güvenli biçimde kapatılmasını kolaylaştırır.
SELECT ve UPDATE aynı yöntemle mi çalıştırılır?
Hayır. Biri veri döndürür, diğeri veriyi değiştirir. Uygulama mantığında bu ayrım korunmalıdır.
İlgili aramalar
- c# sql server bağlantısı
- sqlconnection sqlcommand örnek
- datatable doldurma mantığı
- ado.net temel kullanım
- using blokları veritabanı
Bir yanıt yazın