【发布时间】:2015-01-24 13:44:46
【问题描述】:
我正在尝试存储有关学校学生的数据。我之前做过几张表格,比如一张用于密码和教师的表格,稍后我将把它们放在一个程序中。
我几乎从其中之一复制了创建表函数,并将值更改为以供学生信息使用。它在其他程序上运行良好,但我不断收到:
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)
【问题讨论】:
-
你有没有创建表
PupilPremiumTable? -
是的,该表之前已经创建过,如果不清楚,请见谅。它与此 python 文件位于同一文件夹中。
-
请注意,如果您有一个名为
PupilPremiumTable.db的文件,并不意味着您有一个名为PupilPremiumTable的表 -
我已经尝试连接到 PupilPremiumTable 和 PupilPremiumTable.db。当我更改线路时:
with sqlite3.connect("PupilPremiumTable.db") as db:到with sqlite3.connect("PupilPremiumTable") as db:它没有抛出错误,但仍然卡在同一个地方,当我将cursor.execute("select MAX(RecordID) from PupilPremiumTable")更改为cursor.execute("select MAX(RecordID) from PupilPremiumTable.db")时,同样的事情 -
@BhargavRao:表存在,数据库存在,但是通过使用相对路径,您可以在当前工作目录中打开它。当前工作目录可以是任何内容,具体取决于脚本的启动方式。