SQLite veritabanı bilgi çekememe

class AnaPencere(QtWidgets.QWidget):
    def __init__(self):
        super(AnaPencere,self).__init__()
        self.init_ui(AnaPencere)

        self.AddUser()


    def CreateDataBase(self):
        self.con = sqlite3.connect("Database.db.sqbpro")
        self.cursor = self.con.cursor()
        self.cursor.execute("Create Table if not exists Kullanici_Veritabani('Kullanici_adi' TEXT,'sifre' TEXT)")
        self.con.commit()
    def AddUser(self):

        isim = self.kullanici_adi_alani.text()
        sifre = self.parola_alani.text()
        self.cursor.execute("SELECT * FROM Kullanici_Veritabani where kullanici_adi = ? and sifre = ?",(isim,sifre))

        data = self.cursor.fetchall()
        print(data)
        print(len(data))

kodların hepsini paylaşmadım çok uzun olmasın diye sqliteye bağlanıyor fakat bilgi çekemiyorum kod hatam mı var bilmiyorum datayı boş liste olarak gösteriyor uzunluğu ise haliyle 0 neden böyle gösteriyor bilmiyorum yardımcı olursanız sevinirim.

Tablo bostur?
isim/sifre yanlis da olabilir.

Hocam kaç kere denedim. Kopyalıyıp yapıştırıyorum yine olmuyor.

Query’i elle yazmayi denedin mi?

sqlite3 komut satiri istemcisiyle mesela.

def AddUser(self):

	isim = self.kullanici_adi_alani.text()
	sifre = self.parola_alani.text()
	query = "SELECT * FROM Kullanici_Veritabani where kullanici_adi = '{}' and sifre = '{}'".format(isim,sifre)
	self.cursor.execute(query)

	data = self.cursor.fetchall()
	print(data)
	print(len(data))

Bu şekilde dene istersen

denedim malesef olmuyor.

onu da denedim yine olmuyor.

Olmuyor derken?​​​​​

def AddUser(self):

	isim = self.kullanici_adi_alani.text()
	sifre = self.parola_alani.text()
	query = "SELECT * FROM Kullanici_Veritabani where kullanici_adi = '{}' and sifre = '{}'".format(isim,sifre)

	print(isim)
	print(sifre)
	print(query)

	self.cursor.execute(query)

	data = self.cursor.fetchall()
	print(data)
	print(len(data))

bu şekilde çalıştırıp çıktıları gözden geçir.


konsolda gördüğünüz şeylerde data ve data uzunluğu sanki veritabanında kullanıcı yokmuş gibi ama veritabanında kayıtlı

İkinci attığım kodu deneseydin keşke. isim, sifre ve query değişkenlerinin değerlerini öğrenmek için.

Aşağıdaki gibi değiştirir misiniz sorgu kodunuzu?

print(isim)
print(sifre)

self.cursor.execute("""SELECT * FROM Kullanici_Veritabani WHERE
kullanici_adi = '%s' AND parola = '%s'"""%(isim, sifre))

data = self.cursor.fetchone()

isim ve sifre değişkenlerine textboxlardan herhangi bir değer gelmiyor. Kodunun ilk halinde de sorun yok gibi. Şu şekilde deneyip tam olarak emin olabilirsin.

def AddUser(self):

        isim = self.kullanici_adi_alani.text()
        sifre = self.parola_alani.text()
        self.cursor.execute("SELECT * FROM Kullanici_Veritabani where kullanici_adi = ? and sifre = ?",("kullanıcı adı","şifre")) #buraları elle doldur ve çalışıp çalışmadığını kontrol et

        data = self.cursor.fetchall()
        print(data)
        print(len(data))

print(len(data)) şeklinde bastırmak istediğimde none type olduğu için len fonksiyonunu kullanamazsın dedi sildim o satırı şimdi ne hata veriyor ne de benim istediğim şekilde bi sonuç. burda yazmış olduğunu kodu da anlamadım açıkçası.

bu dediğini yaparak giriş yapabiliyorum onda sorun yok. Ama qlinedit’ten yazarak giremiyorum.

Arayüz kodlarını atabillir misin?

Qt kullanıyorsunuz döngüye alın

        while True:
            row = data.fetchone()
            if not row:
               break
            return row[0]

bu şekilde veriyi çekin kontrol edin gelecektir.