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
Basit Veri Bağlama (Simple Data Binding)
Veri Girişi Doğrulama (Input Validation)
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
Kompleks Veri Bağlama (Complex Data Binding)
c# Programında Bigpara Sayfasından Borsa Verilerini Selenium Kütüphanesini Kullanarak Çekme
Veri Girişi Maskeleme (MaskedTextBox)
Yıkıcı Metotlar (Destructors)
Konsol Ekranında Kod Yazma ve Çalıştırma
Kaçan Buton Oyununu Yapan c# Uygulaması
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Form Sınıfı
Form Sınıfına Ait Bazı Olayların ve Özelliklerin Kullanılmasına Ait Örnek Uygulama
Verilen İki Matrisi Çarpan Programı c# Dilinde Form Ortamında Yapınız
Tombala Oyununu Yapan Uygulamayı c# Dilinde Kodlama1
Metodu Sonlandırma
GroupBox Paneliyle Gruplandırılan Bilgisayar Parçalarının Satışını Yapan c# Form Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
c# Console Uygulamalarında Timer Kullanımı
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması

Yorum Ekle
   
Kötü
İyi