Питон и sqlite3.OperationalError: такой таблицы нет:

Я пытаюсь хранить данные об учениках в школе. Я сделал несколько таблиц раньше, например, для паролей и учителей, которые я позже соберу в одной программе.

Я в значительной степени скопировал функцию create table из одного из них и изменил значения для информации ученика. Он отлично работает в других программах, но я продолжаю получать:

sqlite3.OperationalError: no such table: PupilPremiumTable

когда я пытаюсь добавить ученика к таблице, это происходит на строка:

cursor.execute("select MAX(RecordID) from PupilPremiumTable")

Я смотрю в папку и вижу файл под названием PupilPremiumTable.db и таблица уже была создана раньше, поэтому я не знаю, почему она не работает.

вот некоторые из моего кода, если вам нужно больше, не стесняйтесь сказать мне так, как я сказал, что он работал раньше, поэтому я понятия не имею, почему он не работает или даже то, что не работает:

with sqlite3.connect("PupilPremiumTable.db") as db:
    cursor = db.cursor()
    cursor.execute("select MAX(RecordID) from PupilPremiumTable")
    Value = cursor.fetchone()
    Value = str('.'.join(str(x) for x in Value))
    if Value == "None":
        Value = int(0)
    else:
        Value = int('.'.join(str(x) for x in Value))
    if Value == 'None,':
        Value = 0
    TeacherID = Value + 1
    print("This RecordID is: ",RecordID)

1 ответов


вы предполагаете, что текущий рабочий каталог совпадает с каталогом, в котором живет ваш скрипт. Это не предположение можно сделать. Ваш скрипт открывает новая база данных в другом каталоге, который пуст.

использовать абсолютный путь для файла базы данных. Вы можете основывать его на абсолютный путь скрипта:

import os.path

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
db_path = os.path.join(BASE_DIR, "PupilPremiumTable.db")
with sqlite3.connect(db_path) as db:

Вы можете проверить, что текущий рабочий каталог с os.getcwd() если вы хотите рис. где вместо этого вы открываете новый файл базы данных; вы, вероятно, хотите очистить дополнительный файл, который вы создали там.