如何从sqlite +phonegap中的表中获取第一列名称
Posted
技术标签:
【中文标题】如何从sqlite +phonegap中的表中获取第一列名称【英文标题】:How to get first column name from table in sqlite +phonegap 【发布时间】:2013-07-12 00:05:01 【问题描述】:您能告诉我如何从 sqlite +phonegap 中的表中获取第一列名称吗? 我有一个表名“student”。有列名 ID 、 name 、 Rollnumber 。
如何使用查询获取列名?
我尝试这样 var str=tx.executeSql('SELECT 0 FROM student'); 警报(“str”+str); 但是出现错误
首先我创建一个表
tx.executeSql('CREATE TABLE IF NOT EXISTS CaseTable (id INTEGER PRIMARY KEY AUTOINCREMENT, CaseName TEXT NOT NULL,CaseDate INTEGER ,TextArea TEXT NOT NULL)');
Before Insert i need to check
checkExitingFolderName();
function checkExitingFolderName()
db.transaction(getallTableCntend, errorCB);
function getallTableCntend(tx)
var str=tx.executeSql('SELECT 1 FROM CaseTable WHERE ID=1');
alert("str"+str);
【问题讨论】:
你想做什么?为什么需要列 name? 实际上我需要检查重复项。我需要在插入之前检查该元素是否存在于该列中。或不存在 请添加示例数据和预期输出。 为什么不在模式中添加UNIQUE
约束,让RDBMS 为您处理?
我也这样尝试但是不行
【参考方案1】:
请使用指向英特尔 XDK 第三方插件的链接。在此之前,请从 github 下载项目依赖 jar 文件并使用 cordova 插件 SQLite 名称创建目录并将文件放入其中,包括 jar 文件。然后尝试使用 URL 添加插件。
请看下面的全部代码 1.create 数据库 2.add table 3.add data to table 4.get data from table
// Wait for Cordova to load
document.addEventListener('deviceready', onDeviceReady, false);
// Cordova is ready
function onDeviceReady()
////////////////////////////////////////////////////////////////////////////////////////////////
alert("Start ");
var db = window.sqlitePlugin.openDatabase( name: 'my.db', location: 'default' , function ()
alert("database creatred");
db.transaction(function (tx)
tx.executeSql('CREATE TABLE customerAccounts (firstname, lastname, acctNo)');
alert("Table create");
addItem("first", "last", 100);
getData("last");
, function (error)
alert('transaction error: ' + error.message);
, function ()
alert('transaction ok');
);
, function (error)
);
////////////////////////////////////////////////////////////////////////////////////////////////
function addItem(first, last, acctNum)
alert("start adding");
db.transaction(function (tx)
var query = "INSERT INTO customerAccounts (firstname, lastname, acctNo) VALUES (?,?,?)";
alert("start insterting");
tx.executeSql(query, [first, last, acctNum], function(tx, res)
console.log("insertId: " + res.insertId + " -- probably 1");
console.log("rowsAffected: " + res.rowsAffected + " -- should be 1");
alert("insert complete");
,
function(tx, error)
alert('INSERT error: ' + error.message);
);
, function(error)
alert('transaction error: ' + error.message);
, function()
alert('transaction ok');
);
////////////////////////////////////////////////////////////////////////////////////////////////
function getData(last)
db.transaction(function (tx)
alert("get data");
var query = "SELECT firstname, lastname, acctNo FROM customerAccounts WHERE lastname = ?";
alert("get data working");
tx.executeSql(query, [last], function (tx, resultSet)
for(var x = 0; x < resultSet.rows.length; x++)
alert("First name: " + resultSet.rows.item(x).firstname +
", Acct: " + resultSet.rows.item(x).acctNo);
,
function (tx, error)
alert('SELECT error: ' + error.message);
);
, function (error)
alert('transaction error: ' + error.message);
, function ()
alert('transaction ok');
);
///////////////////////////////////////////////////////////////////////////////////////////////////
【讨论】:
以上是关于如何从sqlite +phonegap中的表中获取第一列名称的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQLite 中的表中选择最新的 100 个不同条目?