下面列出了我的简单测试代码。我已经创建了这个表,并且可以使用Firefox上的SQLite管理器插件来查询它,这样我就知道这个表和数据是存在的。当我在python中运行查询(并使用python shell)时,会得到no-such表错误
def TroyTest(self, acctno):
conn = sqlite3.connect('TroyData.db')
curs = conn.cursor()
v1 = curs.execute('''
SELECT acctvalue
FROM balancedata
WHERE acctno = ? ''', acctno)
print v1
conn.close()
问题是SQL语句。必须在表名之后指定数据库名。。。
'''SELECT*FROM数据库名称.表名称其中acctno=?''
当您向SQLite传递一个不存在的路径时,它会很高兴地为您打开一个新的数据库,而不是告诉您该文件以前不存在。当您这样做时,它将是空的,您将得到一个“没有这样的表”错误。
您使用的是数据库的相对路径,这意味着它将尝试在current目录中打开数据库,而这可能不是您认为的位置。。
补救方法是使用绝对路径代替:
您需要在光标上循环以查看结果:
或呼叫
fetchone()
:相关问题 更多 >
编程相关推荐