SQLite'a Tkinter üzerinden veri kaydedemiyorum

Merhaba python ile yazmış olduğum programdan veritabanına data giremiyorum program sorunsuz çalışıyor kaydet butonuna basıyorum veritabanına giriyorum bilgi yok nerede yanlış yapıyorum ?

# Veritabanı Oluşturma
veritabani = sqlite3.connect("veri.db")
im = veritabani.cursor()
im.execute("CREATE TABLE IF NOT EXISTS arkadaslar(tckimlik TEXT, isim TEXT, soyad TEXT, cinsiyet TEXT, memleket TEXT, adresil TEXT, acikadres TEXT, telno TEXT)")


# Veritabanı Kayıt Fonksiyonu
def submit():
    # db connect
    veritabani = sqlite3.connect("veri.db")
    im = veritabani.cursor()
    veritabani.commit()


    #tablo ekleme
    im.execute("INSERT INTO arkadaslar VALUES(:tckimlik,:isim, :soyad, :cinsiyet, :memleket, :adresil, :acikadres, :telno)",
               {
                   'tckimlik': tckimlik.get(),
                   'isim': isim.get(),
                   'soyad': soyad.get(),
                   'cinsiyet': cinsiyet.get(),
                   'memleket': memleket.get(),
                   'adresil': adresil.get(),
                   'acikadres': acikadres.get(),
                   'telno': telno.get(),


               })




    # clear text box
    tckimlik.delete(0,END)
    isim.delete(0, END)
    soyad.delete(0, END)
    cinsiyet.delete(0, END)
    memleket.delete(0, END)
    adresil.delete(0, END)
    acikadres.delete(0, END)
    telno.delete(0, END)

# Kaydet Butonu
submit_btn = tkinter.Button(pencere, bg="#363636", bd=5, activebackground="#e6c619", height=40, width=60,image=kaydetbuton, command=submit )
submit_btn.place(x=300,y=530)
    

bu tek başına çalışmaz ki en fazla sözlük içindekileri ekler. sana bir çalışmamı göndermemi ister misin? database + tkinter şeklinde telefon rehberi yapmıştım.?

1 Beğeni

Merhaba, veritabani.commit’i im.execute’tan sonra çağırmanız gerekir: Dokümantasyondan:

This method commits the current transaction. If you don’t call this method, anything you did since the last call to commit() is not visible from other database connections. If you wonder why you don’t see the data you’ve written to the database, please check you didn’t forget to call this method.

Aşağı yukarı “Bu metodu çağırmazsanız, en son çağırdığınızdan bu yana yaptığınız değişiklikler görünür olmayacaktır. Eğer veri tabanına yazdığınız veri neden orada gözükmüyor diye merak ediyorsanız, lütfen bu metodu çağırıp çağırmadığınızı kontrol edin.” diyor.

Bu arada veri tabanıyla işiniz bittiğinde veritabanı.close() diyerek kapatabilirsiniz, ne olur ne olmaz.

2 Beğeni

Merhaba kodumun devamı var ilgili kısım olduğu için burayı atmıştım isterseniz tamamını atayım

Hemen deneyip döneceğim

Tamamından ziyade, sorunu ortaya çıkaran, karşıdakilerin de çalıştırdığında direkt aynı hatayı alabilecekleri ve aynı zamanda minimal olan bir kod paylaşmanız, size yardım edebilecek olanların sayısını 0-3 aralığından 0-30 aralığına çıkarabilir. Bir dahakine öyle paylaşmanızı rica ederim.

1 Beğeni

Dediğinizi uygulayınca çalışmaya başladı çok teşekkür ederim

2 Beğeni

Merak ettim atarmısınız ?

Hocam database için hangi veritabanını kullanıyosunuz acaba