c# Desktop

c# Form Uygulamalarında SqLite Veritabanında Birbirleriyle İlişkili Tablolar Oluşturma

Bir veritabanında en az bir tablo olmak şartıyla, birbirleriyle ilişkili birden fazla tablo bulunabilir. Tablolar arasında ilişkinin sağlanması için sayısal bir alan kullanılmalıdır. SqLite veri tabanı programında da birbirleriyle ilişkili tablo tanımlayabilirsiniz. Bu uygulamamızda daha önce tanımladığımız Uyeler tablosuyla ilişkili Hareket tablosu oluşturulacaktır. 

Form sayfasına aşağıdaki kodları yazalım.

        SQLiteConnection con;
        SQLiteDataAdapter da;
        SQLiteCommand cmd;
        DataSet ds;
        private void Form1_Load(object sender, System.EventArgs e)
        {
            if (!File.Exists("skorlar.s3db"))
                SQLiteConnection.CreateFile("skorlar.s3db");
 
            con = new SQLiteConnection("Data Source=skorlar.s3db;Version=3;");
            con.Open();
 
            string sql = @"CREATE TABLE IF NOT EXISTS Uyeler(
                               Kodu INTEGER PRIMARY KEY AUTOINCREMENT ,
                               Adi         VARCHAR(25)       NOT NULL,
                               Soyadi      VARCHAR(25)       NOT NULL,
                               UserName    VARCHAR(25)       NOT NULL,
                               Password    VARCHAR(25)       NOT NULL
                            );";
 
            cmd = new SQLiteCommand(sql, con);
            cmd.ExecuteNonQuery();
 
            string sql1 = @"CREATE TABLE IF NOT EXISTS Hareket(
                               id INTEGER PRIMARY KEY AUTOINCREMENT ,
                               Tarih       TEXT          NOT NULL,
                               Seviye      INTEGER       NOT NULL,
                               Sure        TEXT          NOT NULL,
                               Bittimi     INTEGER       NOT NULL,
                               Kodu        INTEGER       NOT NULL,
                               FOREIGN KEY(Kodu) REFERENCES Uyeler(Kodu)
                            );";
 
            cmd = new SQLiteCommand(sql1, con);
            cmd.ExecuteNonQuery();
 
            con.Close();
        }

Ana tabloda silinen bir kaydın ilişkili tabloda yer alan tüm kayıtları silmesini istemiyorsak tabloyu aşağıdaki gibi oluşturmamız gerekir.

            string sql1 = @"CREATE TABLE IF NOT EXISTS Hareket(
                               id INTEGER PRIMARY KEY AUTOINCREMENT ,
                               Tarih       TEXT          NOT NULL,
                               Seviye      INTEGER       NOT NULL,
                               Sure        TEXT          NOT NULL,
                               Bittimi     INTEGER       NOT NULL,
                               Kodu        INTEGER       NOT NULL,
                               FOREIGN KEY(Kodu) REFERENCES Uyeler(Kodu)
                               ON UPDATE RESTRICT
                               ON DELETE RESTRICT;
                            );";

Tam tersi olarak ilişkili tablodaki tüm kayıtların da etkilenmesini istiyorsak tabloyu aşağıdaki gibi tanımlayın.

            string sql1 = @"CREATE TABLE IF NOT EXISTS Hareket(
                               id INTEGER PRIMARY KEY AUTOINCREMENT ,
                               Tarih       TEXT          NOT NULL,
                               Seviye      INTEGER       NOT NULL,
                               Sure        TEXT          NOT NULL,
                               Bittimi     INTEGER       NOT NULL,
                               Kodu        INTEGER       NOT NULL,
                               FOREIGN KEY(Kodu) REFERENCES Uyeler(Kodu)
                               ON UPDATE CASCADE
                               ON DELETE CASCADE;
                            );";
 

 


İlgili Makaleler
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
Yıkıcı Metotlar (Destructors)
Sayısal Loto Çekilişini Yapan c# Uygulaması
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
Kaçan Buton Oyununu Yapan c# Uygulaması
Yazdırma İletişim Kutusu (PrintDialog)
C# Uygulamalarında HashMap Dizi Oluşturma
C# Uygulamalarında Dictionary Dizi Oluşturma
c# Form Uygulamalarında Ekranın Genişliğini ve Yüksekliğini Bulma
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Veri Girişi Doğrulama (Input Validation)
Veri Girişi Maskeleme (MaskedTextBox)
LINQ - Gruplama (Grouping) Örnekleri
Konsol Ekranında Kod Yazma ve Çalıştırma
Panel Üzerinde Serbest Çizim Yapan c# Form Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
C# Programlama Dilinde Veri Tipleri
Form Sayfalarında Ayrıntılı ListBox Kullanımı
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Belirtilen Sayı Kadar Yıldız Oluşturan c# Form Uygulaması

Yorum Ekle
   
Kötü İyi