SQLite Select查询不会出错,但不会显示结果

时间:2016-04-13 17:05:10

标签: python sqlite pyqt4

基本上我想要做的是根据用户的输入从数据库中返回条目,并在PyQt4的textBrowser小部件中显示记录。

这是代码:

    def url_search(self):
        self.browserUrl.append("Look") \\ for testing reasons, works.
        items = []
        for index in range(self.listUrl.count()):
             items.append(self.listUrl.item(index))
             conn = sqlite3.connect(directory + '\\CyberConan Databases\\CB Database\\Google Chrome\\Chrome Artifacts.db')
        for kw in items:
            self.browserUrl.append("it is") \\for testing reasons, works
            x = str(kw)
            for row in conn.execute("SELECT * FROM urls WHERE ID LIKE ? OR URL LIKE ? OR Title LIKE ? "
                                "OR Visit_Count LIKE ? OR Typed_Count LIKE ?;",
                                ("'%"+x+"%'", "'%"+x+"%'", "'%"+x+"%'", "'%"+x+"%'", "'%+x+%'")):
                 self.browserUrl.append("working") \\ for testing reasons, does not work
                 self.browserUrl.append(str(row[0]))
                 self.browserUrl.append(str(row[1]))
                 self.browserUrl.append(str(row[2]))
                 self.browserUrl.append(str(row[3]))
                 self.browserUrl.append("working man!") \\ for testing reasons, does not work
                 self.browserUrl.append(str(row[4]))
                 self.browserUrl.append(str(row[5]))

因此用户会按下按钮并运行此功能。我得到的唯一输出是:

  

查找

     

它是

每次按下按钮时都会发生此输出。所有命名都是正确的。我没有错。该表确实包含用户正在搜索的内容,因此应该有输出。注意"它是"出现的项目数量为kw。

(这是一个毕业项目)

1 个答案:

答案 0 :(得分:1)

好的,所以我发现了问题所在。

首先:在select语句中解析字符串没有正确完成。

第二:当我从列表中返回项目时,我正在返回他们的"位置"而不是字符串本身。

对于可能遇到过类似问题的人来说,这是已解决的代码:

    def url_search(self):
         items = []
         for index in range(self.listUrl.count()):
              thing = self.listUrl.item(index)
              items.append(thing.text())
         conn = sqlite3.connect(directory + '\\CyberConan Databases\\CB Database\\Google Chrome\\Chrome Artifacts.db')
         for kw in items:
              x = str(kw)
              for row in conn.execute("SELECT * FROM urls WHERE ID LIKE ? OR URL LIKE ? OR Title LIKE ? "
                                "OR Visit_Count LIKE ? OR Typed_Count LIKE ?;",
                                ("%"+x+"%", "%"+x+"%", "%"+x+"%", "%"+x+"%", "%"+x+"%")):
                   self.browserUrl.append(str(row))
    conn.close()