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
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)
Kaçan Buton Oyununu Yapan c# Uygulaması
Konsol Ekranında Kod Yazma ve Çalıştırma
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
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
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
c# Console Uygulamalarında Timer Kullanımı
Metodu Sonlandırma
GroupBox Paneliyle Gruplandırılan Bilgisayar Parçalarının Satışını Yapan c# Form Uygulaması
İkinci Dereceden Bir Bilinmeyenli Denklemin Köklerini Bulan c# Console Uygulaması
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması

Yorum Ekle
   
Kötü
İyi