<p>您尚未执行回迁,因此没有数据。<br/>
使用:</p>
<pre><code>mydata = c.fetchone()
</code></pre>
<p>或者</p>
^{pr2}$
<p>然后你可以说</p>
<pre><code>for item in mydata:
</code></pre>
<p>对于记录,<code>commit</code>语句仅用于提交对数据库的写入。<br/>
没有关于Tkinter和sqlite3的信息的原因是它们没有关系。简单搜索sqlite3和<code>python</code>将提供大量文档。在</p>
<p>编辑1:在您的评论后澄清<br/>
您仍然需要在select之后执行一个fetch。所以你的代码应该是这样的:</p>
<pre><code>def loadRecord():
cont = sqlite3.connect('test.db')
c = cont.cursor()
c.execute('SELECT * FROM content')
mydata = c.fetchall()
for row in mydata:
list.get(row)
</code></pre>
<p>我已经很长时间没有使用Tkinter了,所以我不确定<code>list.get(row)</code>行,但是不管它应该是什么,您都将从“获取的”数据加载数据,即mydata<br/>
要拉出<code>for</code>循环中的各个数据项,请设置“dictionary cursor”:</p>
<pre><code>cont.row_factory = sqlite3.Row
</code></pre>
<p>然后,您可以使用列名访问数据,如下所示:</p>
<pre><code>for row in mydata:
print row['data_item1']
print row['data_item2']
</code></pre>
<p>其中data_item1和data_item2是数据库表中的名称(字段)</p>
<p>要测试它,请尝试在<code>for row in mydata</code>循环中打印mydata或行</p>
<p>最后,关于<code>commit</code>语句,在本例中不需要它。但是,您可以将数据库设置为自动提交,这样您就不必担心它们,方法是在打开数据库时设置<code>isolation_level</code>:</p>
<pre><code>sqlite3.connect("mydatabase.db", isolation_level=None)
</code></pre>