2016-05-01 45 views
0

比方說,我有一個SQLite表所示:的SQLite在一個字符串中同時查詢兩行和存儲數據

public static final String DataBaseName = "test1.db"; 
    public static final String DataTableName = "jobsTable"; 
    public static final String ColID = "ID"; 
    public static final String ColPlace = "placeName"; 
    public static final String ColPosition = "position"; 
    public static final String ColStartingTime = "startingTime"; 
    public static final String ColHours = "hours"; 
    public static final String ColAddress = "address"; 
    public static final String ColPhoneNumber = "phoneNumber"; 

我已經知道如何編寫一個查詢一行和值存儲一個ArrayList內。貝婁碼獲取placeName colum的所有成員並將它們存儲在一個數組列表中。例如

"placename1","placeName2","placeName3","placeName4",... 

代碼:

public ArrayList<String> getAllPlacesNames() { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor result = db.rawQuery("select placeName FROM " + DataTableName,null); 
     ArrayList<String> companyNames = new ArrayList<String>(); 

     while(result.moveToNext()) { 
      String places = result.getString(result.getColumnIndex("placeName")); 
      companyNames.add(places); 
     } 

     return companyNames; 
    } 

我試圖寫一個方法類似上面,從兩列(PlaceNameposition)得到的值,並將其儲存喜歡:

"placeName1/position1","placeName2/position2","placeName3/position3","placeName4/position4",... 

如何才能做到這一點?謝謝

+0

但你爲什麼要這麼做?直接處理結果難嗎? – e4c5

回答

0
public ArrayList<String> getAllCompanyPositionsAndNamesAndPhone() { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor result = db.rawQuery("select placeName, position, startingTime FROM " + DataTableName,null); 
     ArrayList<String> companyPositions = new ArrayList<String>(); 
     while(result.moveToNext()) { 
      String position = result.getString(result.getColumnIndex("position")); 
      String places = result.getString(result.getColumnIndex("placeName")); 
      String phoneNum = result.getString(result.getColumnIndex("startingTime")); 
      String merged = places + "/" + position + "\n" + "Starts on: " + phoneNum; 
      companyPositions.add(merged); 

     } 
     return companyPositions; 
0

我建議使用Hashmap保存鍵/值數據這是我的解決方案。

public ArrayList<String> getAllPlacesNames() { 
SQLiteDatabase mydb = this.getWritableDatabase(); 
Cursor result = mydb.rawQuery("select placeName, position FROM " + DataTableName,null); 

HashMap<String, Integer> data= new HashMap<String, String>(); 

while(result.moveToNext()) { 


map.put(result.getString(result.getColumnIndex("placeName")), result.getString(result.getColumnIndex("position"))); 

} 

H @ ppy c0de !!

相關問題