Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlite3.0错误:接近;显示“显示”:语法错误_Python_Python 3.x_Sqlite - Fatal编程技术网

Python sqlite3.0错误:接近;显示“显示”:语法错误

Python sqlite3.0错误:接近;显示“显示”:语法错误,python,python-3.x,sqlite,Python,Python 3.x,Sqlite,我正在pyqt5中构建一个表,它将在表中显示SQL的输出。首先,您必须在命令行中键入命令,然后按下按钮更新表格 虽然,insert-into-table等命令正在工作,但当我键入显示数据库时在命令行中显示此错误: Traceback (most recent call last): File "c:/Users/intel/Desktop/table.py", line 24, in load_data result = connection.execute(inp) sqlite3

我正在
pyqt5
中构建一个表,它将在表中显示
SQL
的输出。首先,您必须在命令行中键入命令,然后按下按钮更新表格

虽然,
insert-into-table
等命令正在工作,但当我键入
显示数据库时在命令行中显示此错误:

Traceback (most recent call last):
  File "c:/Users/intel/Desktop/table.py", line 24, in load_data
    result = connection.execute(inp)
sqlite3.OperationalError: near "show": syntax error
这是我的代码:

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
from PyQt5 import QtWidgets
import sqlite3

inp = input('>> ')

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 table - pythonspot.com'
        self.left = 0
        self.top = 0
        self.width = 300
        self.height = 200
        self.initUI()
#CREATE TABLE employees(email varchar(30), password(30));
    def load_data(self):
        connection = sqlite3.connect('my_db.db')
        #connection.execute(inp)
        #
        result = connection.execute(inp)
        self.tableWidget.setRowCount(0)

        for row_number, row_data in enumerate(result):
            self.tableWidget.insertRow(row_number)
            for column_number, data in enumerate(row_data):
                self.tableWidget.setItem(row_number, column_number, QTableWidgetItem(str(data)))

        connection.close()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.createTable()

        # Add box layout, add table to box layout and add box layout to widget
        self.layout = QVBoxLayout()
        self.layout.addWidget(self.tableWidget) 
        self.setLayout(self.layout) 

        self.btn = QtWidgets.QPushButton(self)
        self.btn.move(100,600)
        self.btn.setText("Hello")
        self.btn.clicked.connect(self.load_data)
        # Show widget
        self.show()

    def createTable(self):

        self.tableWidget = QTableWidget()
        self.tableWidget.setRowCount(1) ##set number of rows 
        self.tableWidget.setColumnCount(8) ##this is fixed for myTableWidget, ensure that both of your tables, sql and qtablewidged have the same number of columns 


        self.tableWidget.move(1,1)

        # table selection change
        self.tableWidget.doubleClicked.connect(self.on_click)

    @pyqtSlot()
    def on_click(self):
        print("\n")
        for currentQTableWidgetItem in self.tableWidget.selectedItems():
            print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_()) 

任何帮助都将不胜感激

在SQLite中没有显示数据库的
命令,因为通常只有一个。但是,有一个PRAGMA数据库列表
。这将列出主数据库和所有连接的数据库(使用
连接数据库“路径”连接到\u数据库“模式”连接)

e、 g.
PRAGMA数据库列表:-

seq name    file
0   main    E:\Navicat\SQlite Databases\soanswers.db
2   sw      E:\Navicat\SQlite Databases\xxx.db  
  • name是附加数据库时使用的架构名称

否则,可能需要搜索文件系统或其一部分,如果要查找SQLite数据库文件,可能需要检查文件的前16个字节中的“SQLite format 3\000”。

没有SQL命令“show”(至少SQLite不支持)是的,在MySQL@MichaelButscher中有,我不知道为什么它会发生在SQLite3中??SQL没有完全标准化。每个数据库软件都有自己的方言。在SQLite上显示数据库甚至没有意义。由于一个数据库文件中只有一个数据库,那么如何查看其中的表数呢?我使用了
.tables
命令,但它显示了“.”
@Mike附近的
语法错误T@AbhaySalvi根据查询sqlite_主控文件