操作错误:没有这样的表:MainD

2024-05-19 12:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中使用sqlite3数据库,但出现以下错误:

Traceback (most recent call last):
  File "C:\Users\Angel\Desktop\Proyecto\Src_School_Admin\SchoolAdmin-Director.py", line 4, in <module>
    from execute_files.Sqlitedb import FirstUseInfo
  File "C:\Users\Angel\Desktop\Proyecto\Src_School_Admin\execute_files\Sqlitedb.py", line 17, in <module>
    FirstUseInfo()
  File "C:\Users\Angel\Desktop\Proyecto\Src_School_Admin\execute_files\Sqlitedb.py", line 12, in FirstUseInfo
    s = cursor.execute("SELECT Use FROM MainData")
sqlite3.OperationalError: no such table: MainData
[Finished in 0.2s]

FirstUseInfo函数与数据库一起位于以下路径的文件中:C:\Users\Angel\Desktop\Project\Src_School_Admin\execute_files

发送来调用FirstUseInfo函数的文件位于C:\Users\Angel\Desktop\Project\Src_School_Admin

但它不起作用一直在标记错误

第一.py

^{pr2}$

Sqlitedb.py

import sqlite3
from PyQt5.QtWidgets import QMessageBox
import os

def FirstUseInfo():
    r = str(os.getcwd())
    final = r.replace("\\","/")
    result = None
    d=final+"/InfoDB.db"

    conexion = sqlite3.connect(d)
    cursor = conexion.cursor()
    s = cursor.execute("SELECT Use FROM MainData")
    for i in s:
        result = int(i[0])
    return print(result)
    conexion.close()
FirstUseInfo()

如果我从Sqlitedb.py运行FirstUseInfo ()没有问题,但是如果我从另一个侧面执行它,它会抛出错误。在

enter image description here

我意识到由于某种原因,在目录C: \ Users \ Angel \ Desktop \ Project \ Src_School_Admin中创建了另一个数据库,这是发送来调用FirstUseInfo函数的文件所在的位置


Tags: inpyimportsrcexecuteadminfilesusers
2条回答

but if I execute it from another side it throws the error.

所以你的密码

r = str(os.getcwd())
final = r.replace("\\","/")
result = None
d=final+"/InfoDB.db"

每次从其他地方运行程序时都会提供新的文件名。 当你跑的时候 conexion = sqlite3.connect(d) SQLite看不到数据库,而是在那里创建的。在

您应该在存储数据库文件的实际文件名的地方创建一些变量。在

通过附加这行代码来解决这个问题

r = os.path.dirname (__ file __)

source = r.replace ('\\'," / ") +" / InfoDB.db " 据我所知,这行返回文件位置的绝对值

相关问题 更多 >