Питон и 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()
если вы хотите рис. где вместо этого вы открываете новый файл базы данных; вы, вероятно, хотите очистить дополнительный файл, который вы создали там.