Операционная ошибка нет такого столбца SQLite 3 - PullRequest
0 голосов
/ 04 мая 2020

Я долго боролся с этим. Я могу получить результаты запроса только из первого столбца, все остальные столбцы возвращают «Нет такого столбца» В чем может быть проблема. Я новичок в python и sqlite3 ...

cur.execute('''CREATE TABLE IF NOT EXISTS learner_data(ADM INT NOT NULL,NAME TEXT NOT NULL,CLASS TEXT NOT NULL,STREAM TEXT NOT NULL,CATEGORY TEXT NOT NULL,GENDER TEXT NOT NULL,COUNTY TEXT NOT NULL,PARENT TEXT NOT NULL,PARENT_CONTACT TEXT NOT NULL,PRIMARY KEY(CLASS,STREAM,CATEGORY,NAME,ADM))''')

Ответы [ 2 ]

0 голосов
/ 04 мая 2020
def fetch_learner_data_from_combo(self):
    new = str("self.stream_combo.currentText()")
    connection= sqlite3.connect("mydb.db")
    query = ("SELECT * FROM learner_data WHERE STREAM =   new")
    result = connection.execute(query)
    self.marks_table.setRowCount(0)

    for row_number,row_data in enumerate(result):
        self.marks_table.insertRow(row_number)
        for column_number,data in enumerate(row_data):
            self.marks_table.setItem(row_number,column_number,QTableWidgetItem(str(data)))
    connection.commit()
    connection.close()
0 голосов
/ 04 мая 2020

Из вашего комментария: ...WHERE CLASS is FORM_II...

Вы не можете использовать is здесь, вы должны использовать =. Кроме того, отсутствие кавычек FORM_II означает, что вы пытаетесь найти строки, значения которых одинаковы для столбцов CLASS и FORM_II (но последний не является столбцом, поэтому всегда будет отображаться 0 совпадений), вместо поиска значения FORM_II.

Итак, попробуйте SELECT * FROM learner_data WHERE CLASS = 'FORM_II'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...