• 04-07-2025, 20:07:11
    #1
    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
  • 04-07-2025, 20:11:14
    #2
    PenguBey adlı üyeden alıntı: mesajı görüntüle
    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
    o sırada entity framework
  • 04-07-2025, 20:12:51
    #3
    PenguBey adlı üyeden alıntı: mesajı görüntüle
    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
    Elinize 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ş.
  • 04-07-2025, 20:14:23
    #4
    JosephC adlı üyeden alıntı: mesajı görüntüle
    Elinize 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ş.
    Teş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 istedim
  • 04-07-2025, 20:17:12
    #5
    PenguBey adlı üyeden alıntı: mesajı görüntüle
    Teş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 istedim
    Açı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şir
  • 04-07-2025, 20:18:44
    #6
    JosephC adlı üyeden alıntı: mesajı görüntüle
    Açı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şir
    Aklıma pek gelmemişti projeyi direk paylaşmayı düşünüyordum fakat bir web sitesi fikri daha iyi teşekkür ederim.
  • 04-07-2025, 20:20:47
    #7
    JosephC adlı üyeden alıntı: mesajı görüntüle
    Açı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şir
    Ş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.
  • 04-07-2025, 20:24:40
    #8
    Hazı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.
  • 04-07-2025, 20:24:59
    #9
    PenguBey adlı üyeden alıntı: mesajı görüntüle
    Ş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.
    açı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 olur