是否可以将整个数据库表,行和列提取到黑莓中的表单中? 我已经能够从记录中检索值到richtextfield,但我想将它们检索到文本框,以便可以从表单更新单个列和行。 继承了我一直在努力的代码
//Retrieve data
try
{
add(new RichTextField("Attempting to retrieve data from " +
"database1.db on the SDCard."));
Statement st = db.createStatement("SELECT name,email FROM DirectoryItems");
st.prepare();
Cursor c = st.getCursor();
Row r;
int i = 0;
while(c.next())
{
r = c.getRow();
i++;
add(new RichTextField(i + ".Name = " + r.getString(0) +
" , " +
"Email = " + r.getString(1))); //+
// " , " +
//"Phone = " + r.getInteger(1)));
}
if (i==0)
{
add(new RichTextField("No data in the DirectoryItems table."));
}
st.close();
db.close();
}
catch( Exception e )
{
System.out.println( e.getMessage() );
e.printStackTrace();
}
答案 0 :(得分:1)
我不想提供完整的解决方案 - 它需要测试,运行,并且在教育方面不会那么有用。
我没有看到任何问题。表中的任何行都有行id列。黑莓ui中的任何Field
都有方法setCookie
,getCookie
,isDirty
。您还可以为每个FocusListener
设置Field
(我不喜欢在每次更改事件时调用save to database,但是在焦点上执行此操作会让声音合理)。
因此,您的想法是获取数据并将其放入EditFields
(每个值一个字段,因此名称和电子邮件将有两个字段)。您将cookie保存为字段行ID和列名称。在每个焦点离开事件中,您检查字段是否脏,并在出现真实情况时安全地保存更改的数据。
这是一个非常粗略的想法,它听起来远离OOP(这意味着将来难以重用或扩展)。但它应该有用。