SQLite - 在Codename One for Java中选择文本并获取Textfield的值

时间:2018-03-16 17:32:49

标签: java sqlite codenameone

我提出了一个关于移动应用程序数据存储在数据库中的问题,但不是我指定的数据库:

SQLite - no errors, however, no data uploaded to DB

我创建了另一个GUI元素来搜索数据库以获取用于测试目的的特定信息。

CodeName One使用Database API。 https://www.codenameone.com/javadoc/com/codename1/db/Database.html

不幸的是,网上有很多很好的例子,但不是CodeName One。

Database db = null;
Cursor cur = null;

        try{

            Database ARdb = Display.getInstance().openOrCreate("RecordsDB.db"); 

            System.out.println("Connection secured to database.");

            ARdb.beginTransaction();

            String SelectRecords = "SELECT Last_Name, Phone, Email, Postcode 
            FROM TestRecord";

            cur = ARdb.executeQuery(SelectRecords);

            //This is where I'm trying to set the text of col Last_Name
            findTxtLastnSearch(c).setText(cur.getText("Last_Name"));

            ARdb.commitTransaction(); 

        } catch(Exception e){

            System.out.println("Error! Connection Failed to DB" 
            +e.getMessage());

        } finally {

            Util.cleanup (db);
            Util.cleanup(cur);

        }
    }

我选择了要测试的记录。我现在想把结果上传到textfields,但是,我无法弄清楚如何去做。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

从执行的查询中获得的不是单行,而是包含多行的游标,因此您需要遍历它并处理每一行。

查看第二个链接中的示例。像这样的东西

int indexForLastName = cur.getColumnIndex("Last_Name");
while(cur.next()) {
  Row row = cur.getRow()
  String lastname = row.getString(indexForLastName);
  //more stuff
}