如何从 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()
关于如何根据我的组合框选择给出我的 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()