繁体   English   中英

无法在python上显示sqlite3数据

[英]Can't display sqlite3 data on python

我想在python Tkinter组合框上显示来自sqlite3的特定列,但是显示的是<sqlite3.Cursor object at 0x0000000003E73110> ,我不知道该怎么办? 我不久前才开始编码。

我写以下内容:

from tkinter import *
from tkinter import ttk
import  sqlite3

conn = sqlite3.connect('Library.db')
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS tablename (Name TEXT UNIQUE NOT NULL)")
combolist = c.execute("SELECT Name FROM tablename")


root = Tk()
ttk.Combobox(root, value = (combolist))

在游标对象上调用execute不会返回您的值。 相反,您可以遍历游标,或调用c.fetchall()将所有结果重新组合在一起。

sqlite3还支持一种简写形式,您可以调用conn.execute(...)并直接获取结果,而无需使用任何显式游标,但这需要您在连接而不是游标上调用execute

另外,您可能想从每行中解压缩名称字段。

我认为这段代码应该可以工作(尽管我还没有测试过):

conn = sqlite3.connect('Library.db')
with conn:
    conn.execute("CREATE TABLE IF NOT EXISTS tablename (Name TEXT UNIQUE NOT NULL)")

...这里假设有更多实际插入数据的代码...

with conn:
    combolist = [row["name"] for row in conn.execute("SELECT Name FROM tablename"))]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM