1
我在PyGTK中编写一个程序使用SQLite作为后台数据库,我已经成功地创建了数据库一桌六列使用空单:的Python SQLITE3从语句select返回时,取出
cur.execute('''CREATE TABLE IF NOT EXISTS tabl (
Id INTEGER PRIMARY KEY, Name TEXT, Condition TEXT, Medicine TEXT,
Age TEXT, Date DATE)''')
我插入值使用:
def save(Name, Age, Condition, Medicine):
T = [(Name).title(),(Age).title(),(Condition).title(),(Medicine).title()]
conn = sqlite3.connect('patients.db')
cur = conn.cursor()
conn.text_factory = str
cur.execute('INSERT INTO tabl (Name,Condition,Medicine, Age,Date) VALUES (?,?,?,?,date("now"))',(T))
值由GUI提供。
现在我在搜索对话框中有一个组合框,用于指定搜索哪种类型(名称,年龄,日期或条件),因此我使用了所选项目的索引,这是主要模块:
def find(self,widget):
index = self.comboBy.get_active()
nameU = self.entryFor.get_text()
name = nameU.title()
names = database.findItem(name,index)
和这里的database.FindItem:
namen = name.title()
if index == 0:
print index
cur.execute("SELECT * FROM tabl WHERE Name=?",[namen])
elif index == 1:
print index
cur.execute("SELECT * FROM tabl WHERE Age=?",[namen])
elif index == 2:
print index
cur.execute("SELECT * FROM tabl WHERE Date=?",[namen])
else:
print index
cur.execute("SELECT * FROM tabl WHERE Condition=?",[namen])
list = cur.fetchall()
print list
return list
供应名称时只适用,它打印索引0和得到正确的名单, 但与其他一些列尝试时例如条件,但它返回一个空的列表[]它打印正确的索引并看到右栏,我很困惑,请帮忙。
非常感谢你,sqliteman是如此的有用,错误是在T列表中,它随着条件列改变了Age列,问题解决了:)。 – Shokry 2012-02-29 15:48:24