2013-10-23 56 views
0

我正在尋找一種有效的方法來做到這一點。希望需要一個字符串的方式。我想要呈現的數據如下所示:如何從SQLite中將一列拖到一個字符串中?

ROW1
2行
ROW3
ROW4

我想嘗試用一個字符串是因爲我可以調用不同的表和它相同的查詢的原因將具有不同數量的行。人們可能有10個,其​​他8所以我不能具體使用8個字符串時,有可能是10

表有沒有辦法我能做到這一點,以便它只是收集有價值的數據的一個欄目,然後我可以格式化它是像上面/

什麼我此刻做,但使用多個字符串。見下文:

//select stuff 
    Cursor c = db.rawQuery("SELECT * FROM table_one", null); 
     c.moveToFirst(); 
     in1 = c.getString(c.getColumnIndex("column_one")); 
     c.moveToNext(); 
     in2 = c.getString(c.getColumnIndex("column_one")); 
     c.moveToNext(); 
     in3 = c.getString(c.getColumnIndex("column_one")); 
     c.moveToNext(); 
     in4 = c.getString(c.getColumnIndex("column_one")); 
     c.moveToNext(); 
     in5 = c.getString(c.getColumnIndex("column_one")); 

    String all = in1 + "\n" + in2 + "\n" + in3 + "\n" + in4 + "\n" + in5; 

當然這個代碼假定總是會有5個比特的信息在如它改變柱。

有沒有更好的方法?

欣賞的幫助。

+0

你問如何轉你的表,然後CONCAT所有的單值? 喜歡使用 GROUP_CONCAT(STR分離器 「\ n」 個) ? – ROLO

+0

[怎麼樣'for'或'while'循環?(http://stackoverflow.com/questions/10723770/whats-the-best-way-to-iterate-an-android-cursor) –

+0

我似乎當我使用循環時會變得空白。 –

回答

0

您可以使用循環和建設數據是這樣的:

Cursor c = db.rawQuery("SELECT * FROM table_one", null); 
String all = ""; 
if (c != null) { 
    if(c.moveToFirst()) 
     do { 
      String in = c.getString(c.getColumnIndex("column_one")); 
      all += in + "\n"; 
     } while (c.moveToNext()); 
    c.close(); 
} 
+0

這是爲我工作。關係中的邊問題的位,列中的最後兩個單元格是空的,有沒有辦法阻止它在應用中顯示爲「空」? –

+0

只是做'如果(在!= NULL)'前面'所有+ =在+ 「\ n」' – serge

+0

感謝,感激不盡! –

相關問題