c# Desktop

c# Form Uygulamalarında SqLite Tablosuna Kayıt Girişini Gerçekleştirme

SqLite programında tanımlanan tablolara kayıt işlemini gerçekleştirmek için INSERT komutu kullanılır. Daha önce hazırladığımız Uyeler tablosuna kayıt girişi işlemlerini burada anlatmaya çalışacağız. Bu arada tabloda bulunan kayıtları DataGridView nesnesinde listelemek istiyorum. 

Form sayfasına bir button ekleyelim. Bununun başlığını "Kaydet", ismini ise "btnKaydet" olarak değiştirelim. Butonun üzerinde farenin sağ tuşuna basarak Click olayını oluşturalım. Öncelikle kayıt girişi işlemini sabit değerler üzerinde yapmak istiyorum. Burada ad, soyad, kullanici, sifre isminde değişkenleri string tipte tanımlayalım.

            string ad, soyad, kullanici, sifre;

Tanımladığımız bu değişkenlere ilk değerlerini verelim.

            ad = "Kıvanç";
            soyad = "Tatlıtuğ";
            kullanici = "tatli";
            sifre = "1234";

Daha sonra veritabanımızı açalım.

            cmd = new SQLiteCommand();
            con.Open();
            cmd.Connection = con;

Şimdi kayıt girişi için INSERT komutunu tanımlayalım.

            cmd.CommandText = "INSERT INTO Uyeler(Adi, Soyadi, Username, Password) VALUES ('" + ad + "','" + soyad + "','" + kullanici + "','" + sifre + "')";

Artık komutumuzu çalıştıralım ve veri tabanı bağlantısını keselim.

            cmd.ExecuteNonQuery();
            con.Close();

Button nesnesinin Click olayı aşağıdaki gibi olacaktır.

        private void button1_Click(object sender, System.EventArgs e)
        {
            string ad, soyad, kullanici, sifre;
 
            ad = "Kıvanç";
            soyad = "Tatlıtuğ";
            kullanici = "tatli";
            sifre = "1234";
            cmd = new SQLiteCommand();
            con.Open();
            cmd.Connection = con;
            cmd.CommandText = "INSERT INTO Uyeler(Adi, Soyadi, Username, Password) VALUES ('" + ad + "','" + soyad + "','" + kullanici + "','" + sifre + "')";
            cmd.ExecuteNonQuery();
            con.Close();
        }

Projemizi kaydedip çalıştıralım. Herhangi bir hata almadan işlemin tamamlandığını görürüz. Ancak kaydın tabloya eklenip eklenmediğini bilmiyoruz. Bu sorunu çözmek için form sayfasına 1 adet DataGripView ekleyelim. AllowUserToAddRows özelliğini false yapalım. EditMode özelliğini EditProgrammatically yapalım. MultiSelect özelliğini false yapalım. Daha sonra tabloda yer alan kayıtları listelemek için kod kısmında Listele() isminde bir metot oluşturalım.

        private void Listele()
        {
 
        }

Şimdi bu metot altına tablodaki kayıtların listelenmesi işlemlerini yazacağız. Bu arada tablolarda yer alan kayıtları listelemek için SELECT komutundan yararlanacağız. Öncelikle veri tabanıyla iletişime geçelim.

            con = new SQLiteConnection("Data Source=skorlar.s3db;Version=3;");

Şimdi Uyeler tablosundaki tüm kayıtları almak için SELECT komutunu yazalım.

            da = new SQLiteDataAdapter("SELECT * FROM Uyeler", con);

Tablodaki kayıtları tutmak için Dataset oluşturalım.

            ds = new DataSet();

Veri tabanını açalım.

            con.Open();

Şimdi de Uyeler tablosundaki tüm kayıtları Dataset nesnesine ekleyelim.

            da.Fill(ds, "Student");

Dataset içinde yer alan tüm kayıtları DataGridView içine aktaralım.

            dataGridView1.DataSource = ds.Tables["Uyeler"];

Ve en sonunda veritabanını kapatalım.

            con.Close();

Listele fonksiyonuna ait tüm kodlar aşağıdaki gibi olacaktır.

        private void Listele()
        {
            con = new SQLiteConnection("Data Source=skorlar.s3db;Version=3;");
            da = new SQLiteDataAdapter("SELECT * FROM Uyeler", con);
            ds = new DataSet();
            con.Open();
            da.Fill(ds, "Uyeler");
            dataGridView1.DataSource = ds.Tables["Uyeler"];
            con.Close();
        }

Tanımladığımız bu fonksiyonu hem formun load olayının sonuna hem de kayıt işlemini yaptığımız butonun sonuna ekleyelim. Projeyi kaydedip çalıştıralım. Eklediğimiz tek kayıt DataGridView içinde görüntülenecektir.

Artık kayıtlarımızı statik değil dinamik yapalım. Bunun form sayfasına 5 adet label, 5 adet textbox ekleyelim. Label nesnelerinin başlıklarını sırasıyla "Kodu :", "Adı : ", "Soyadı : ", "Kullanıcı Adı : ", "Şifre : " değiştirelim. Textbox nesnelerinin isimlerini de sırasıyla txtKodu, txtAdi, txtSoyadi, txtUsername, txtPassword olarak değiştirelim. Şimdi kaydet butonunun kodlarını tekrar düzenleyelim.

        private void button1_Click(object sender, System.EventArgs e)
        {
            string ad, soyad, kullanici, sifre;
 
            ad = txtAdi.Text;
            soyad = txtSoyadi.Text;
            kullanici = txtUsername.Text;
            sifre = txtPassword.Text;
 
            cmd = new SQLiteCommand();
            con.Open();
            cmd.Connection = con;
            cmd.CommandText = "INSERT INTO Uyeler(Adi, Soyadi, Username, Password) VALUES ('" + ad + "','" + soyad + "','" + kullanici + "','" + sifre + "')";
            cmd.ExecuteNonQuery();
            con.Close();
            Listele();
        }

Projeyi kaydedip çalıştıralım. Metin kutularına değer girişi yapalım. Kaydet dediğimizde kaydın tabloya eklendiğini görürsünüz.


İ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ı
Konsol Ekranında Kod Yazma ve Çalıştırma
LINQ - Gruplama (Grouping) Örnekleri
Veri Girişi Maskeleme (MaskedTextBox)
Panel Üzerinde Serbest Çizim Yapan c# Form Uygulaması
Veri Girişi Doğrulama (Input Validation)
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ı
Form Üzerine Satranç Tahtası Yapan c# Uygulaması
Belirtilen Sayı Kadar Yıldız Oluşturan c# Form Uygulaması

Yorum Ekle
   
Kötü İyi