如何从 Python 中的变量给 Sqlite3 table 名称

How to give Sqlite3 table name from a variable in Python

关于如何根据我的组合框选择给出我的 table 名称,我陷入了两难境地。我正在使用 PyQt5。我用这种方法试过,但不对。

b = self.combo.currentText()
sql = '''CREATE TABLE IF NOT EXISTS d (id int, grade text)''')

这将创建一个数据库,名称为 b 而不是组合框中的选项。

您必须使用 application_cb.bind("<>", createTable) 根据组合框选择绑定事件,您必须传递函数名称

application_label = Label(cbFrameRow1Col2, text='Application', bg='gray46', fg='white', font=("calibri", 10))
application_label.grid(row=0, column=0, sticky='w', padx=10, pady=5)
application_cb = ttk.Combobox(cbFrameRow1Col2, values=application_list, width=15)
application_cb.grid(row=0, column=1, sticky='w', padx=10, pady=5)
application_cb.bind("<<ComboboxSelected>>", createdb)

现在您必须在触发此事件时调用创建 table 函数

def createTable(event):
    tablename = application_cb.get()
    conn = sqlite3.connect('temp.db')
    cur = conn.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS %s (id INTEGER PRIMARY KEY, Name TEXT)" % (tablename))
    conn.commit()
    conn.close()