Merhabalar adım Çağrı. Kendi projelerimde kolay SQL işlemleri yapabilmek için sade, Türkçe bir SQL kütüphanesi yazdım.
Amacım, yeni başlayanların bile “bağlantı aç, tablo oluştur, veri ekle” gibi şeylerle uğraşmadan SQL kullanabilmesini sağlamak.
Kütüphane henüz V0.1 ama aktif geliştiriyorum. Tüm fonksiyonlar Türkçe, hata mesajları string olarak alınabiliyor.
🧩 Özellikler:
- Bağlantı testi
- Tablo ekleme/silme
- Veri ekleme, güncelleme, silme
- DataTable ile uyumlu tablo listeleme ve arama
📌 Örnek Kullanım:
```csharp
var db = new TrSql("Data Source=.;Initial Catalog=OrnekDb;Integrated Security=True;");
db.BaglantiAc();
db.TabloEkle("CREATE TABLE Kisiler (Id INT, Ad NVARCHAR(50))");
db.VeriEkle("INSERT INTO Kisiler (Id, Ad) VALUES (1, 'Çağrı')");
Not:Kalan özellikleri github sayfasından öğrenebilir ya da direk kütüphane içindeki açıklamayı okuyabilirsiniz
GitHub Sayfası:https://github.com/Captain-Pengu/Sql-Turkce-Kutuphanesi
Csharp İle Türkçe Sql Kütüphanesi
10
●188
- 04-07-2025, 20:11:14o sırada entity frameworkPenguBey adlı üyeden alıntı: mesajı görüntüle
- 04-07-2025, 20:12:51Elinize sağlık, güzel olmuş. Hedef kitleniz belki ileri düzey kullanıcılar değil de, algoritmayı yeni öğrenmeye başlayan ortaokul ve lise düzeyindeki öğrencilerse, bu içerik onlar için gerçekten çok uygun ve faydalı olmuş.PenguBey adlı üyeden alıntı: mesajı görüntüle
- 04-07-2025, 20:14:23Teşekkür Ederim,evet projemin aslında ortaya çıkış noktası 10.sınıfta iken database ile cebelleşmemizden ortaya çıkan bir fikir bu sıralarda boş bulunduğum için böyle birşey yazmak istedimJosephC adlı üyeden alıntı: mesajı görüntüle
- 04-07-2025, 20:17:12Açık kaynak yaparsanız güzel olur daha hızlı gelişir ek olarak basit bir web site bir sayfa halinde dökümantasyonlarıda paylaşırsanız daha iyi olur hem genç yaştaki kişilerinde dökümantasyon okuma becerisi gelişirPenguBey adlı üyeden alıntı: mesajı görüntüle
- 04-07-2025, 20:18:44Aklıma pek gelmemişti projeyi direk paylaşmayı düşünüyordum fakat bir web sitesi fikri daha iyi teşekkür ederim.JosephC adlı üyeden alıntı: mesajı görüntüle
- 04-07-2025, 20:20:47Şuan Github Üzerinde projeyi açık kaynak haline getirdim detaylara ordan bakabilirsiniz. Dediğiniz gibi belki ileri düzey şuan değil ama başlangıç kitlesi için yeterli düzeyde fakat geliştirmeye çok açık.JosephC adlı üyeden alıntı: mesajı görüntüle
- 04-07-2025, 20:24:40Hazırda mevcut olan System.Data ve System.Data.SqlClient kütüphanelerini projeye ekleyip yanlış/eksik kodlama ile bu işler olmuyor.
1. Bağlantı Yönetimi Sorunu (Connection Leak Riski)
- baglan adında sınıfa ait bir SqlConnection örneği tutuluyor, ama:
- BaglantiAc() metodu bağlantıyı açıyor ama BaglantiKapat() manuel çağrılmadıkça kapatılmıyor.
- Her VeriEkle, VeriGuncelle, TabloAra vb. metot using bloğuyla açılıp kapanmıyor; bu da bağlantı sızıntısına sebep olur.
- Çözüm: using bloğu ile geçici bağlantı oluşturulmalı veya bağlantı havuzu mantığı düzgün oturtulmalı.
2. SQL Injection Riski
- TabloGetir ve TabloSil, TabloEkle gibi metotlarda tablo adı doğrudan SQL'e gömülüyor:
string cmdText = "SELECT * FROM [" + tabloAdi + "]";- Eğer Regex ile kısıtlama yapılmamışsa bu durum ciddi bir SQL Injection açığı oluşturur.
- TabloAra metodu kısmen güvenli (Regex kontrolü ve parametre kullanımı var), ama bu diğerleri için eksik.
3. Exception Handling Kötü Kullanımı
- Her catch bloğunda hata mesajı yalnızca SqlHataKontrol içine yazılıyor, fakat exception fırlatılmıyor veya loglanmıyor. Bu da hataların izlenmesini zorlaştırır.
4. Aşırı Sorumluluk (SRP - Single Responsibility Violation)
- TrSql sınıfı:
- Bağlantıyı yönetiyor.
- Veri işliyor (Insert/Update/Delete).
- Tabloları oluşturuyor/siliyor.
- Hata mesajı tutuyor.
- Yani hem servis hem bağlantı yöneticisi hem hata takipçisi olmuş.
- Çözüm: Repository ve ConnectionManager gibi ayrı sorumluluklara bölünmeli.
5. Durum Bağımlılığı (Statefulness)
- Sınıf this._sqlDurum bayrağına çok bağlı. Bu, programı tahmin edilmesi zor hale getirir.
- Örneğin bağlantı durumu açılıp kapatıldığında _sqlDurum senkronize kalmayabilir.
- baglan adında sınıfa ait bir SqlConnection örneği tutuluyor, ama:
- 04-07-2025, 20:24:59açık kaynak dediğim projeyi zip halinde değilde proje halinde paylaşmanız ek olarka bu dll direkt nuget paketindede paylaşabilirsiniz daha iyi ve hızlı bir başlangıç için mükemmel olurPenguBey adlı üyeden alıntı: mesajı görüntüle