2012-04-24 61 views
0

是否有可能將整個數據庫表,行和列取入黑莓中的表單? 我已經能夠從記錄中檢索值到richtextfield中,但我想將它們檢索到文本框,以便可以從表單更新各個列和行。 繼承人的代碼,我一直工作在檢索黑莓中的整個sqlite表

//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

在try塊中關閉db和語句會導致未來調用數據庫時出錯 – 2012-04-24 08:04:28

+0

確定dat問題可以排序。但是我想指出的問題是我想將它們檢索到textfield.Any有關那? – techie 2012-04-24 08:23:53

回答

1

我不想給完整的解決方案 - 它需要測試,運行,將不會在教育方面如此有用。

我看不出有什麼問題要做。表中的任何行都有行ID列。黑莓UI中的任何Field具有方法setCookie,getCookie,isDirty。每Field你也可以設置FocusListener(我不喜歡在每次改變事件時調用保存到數據庫,但是這樣做會使聲音合理)。

所以這個想法是,你取數據並將其放到EditFields(每個值一個字段,因此將有兩個字段名稱和電子郵件)。您將字段行ID和列名保存到cookie。在每次焦點離開事件時,您都會檢查字段是否髒,並安全地保存已更改的數據以防事件發生。

這是一個非常粗糙的想法,它聽起來遠離OOP(這意味着未來很難重用或擴展)。但它應該工作。

+0

我不確定任何關於在黑莓開發中使用cookies的概念。儘管我不介意研究更多關於dis.Thanks的答覆。 – techie 2012-04-24 08:46:04