【问题标题】:Retrieving a specific item from SQLite database从 SQLite 数据库中检索特定项目
【发布时间】:2014-05-11 07:01:08
【问题描述】:

我这里有一个损坏的函数代码,它会从 SQLite 数据库中检索特定项目,我的问题是我想将检索到的项目的值传递给 displayContent 但我不知道该怎么做,我的代码只是旨在检索单行而不是多行,因为 SecondColumn 的内容不相同。我现在一无所知。

这是我的代码:

function ( content )
{
    var displayContent;
    db.transaction(function (tx) { tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content]); });
}

我们很乐意接受任何额外的想法,我坚持这一点。

【问题讨论】:

    标签: javascript android sqlite jquery-mobile


    【解决方案1】:

    tx.executeSql 方法接受一个回调,然后您可以在其中处理查询结果。看看这里,你可以看到一个例子:http://www.tutorialspoint.com/html5/html5_web_sql.htm

    如您所见,他们执行以下操作:

    db.transaction(function (tx) {
      tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
       var len = results.rows.length, i;
       msg = "<p>Found rows: " + len + "</p>";
       document.querySelector('#status').innerHTML +=  msg;
       for (i = 0; i < len; i++){
         msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
         document.querySelector('#status').innerHTML +=  msg;
       }
     }, null);
    });
    

    在你的情况下,你可能会做这样的事情:

    function ( content )
    {
        db.transaction(function (tx) {
            tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content], function (tx, results) {
                if (results.rows.length) {
                    var displayContent = results.rows.item(0).FirstColumn;
                    document.querySelector('...').innerHTML = ...; // Display something
                }
            });
        });
    }
    

    如果您想尝试等待查询,请查看之前的 Stackoverflow 问题:HTML5 WebSQL: how to know when a db transaction finishes?

    【讨论】:

    • 非常感谢,我现在一切都清楚了。我刚刚在我的应用程序中对其进行了测试,它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多