我試圖從數據庫獲取數據。我已經有50-60個方法用於對db執行操作,並且它們都很好。今天我創建了另一種方法......但它不起作用! IDK也許是因爲我使用的是相同的遊標的2倍.. IDK ...這是產生錯誤代碼:從數據庫獲取數據時出錯
public ArrayList<String> getValueFromTab(String tipoGrafico){
SQLiteDatabase sqlDB = null;
Cursor data = null;
String ascissa=null;
String tabella=null;
ArrayList<String>dati=new ArrayList<String>();
try {
sqlDB = openDataBase(SQLiteDatabase.NO_LOCALIZED_COLLATORS);
data=sqlDB.rawQuery("SELECT TABELLA, ASCISSA FROM cpm_analysis WHERE CATEGORIA='"+tipoGrafico+"' AND ABILITATO <>'no'", null);
if(data.getCount()==0){
data=null;
}else{
while(data.moveToNext()){
tabella=data.getString(0);
ascissa=data.getString(1);
}
data=null;
}
data=sqlDB.rawQuery("SELECT DISTINCT"+ascissa+" FROM "+tabella+"", null);
if(data.getCount()==0){
data=null;
}else{
while(data.moveToNext()){
dati.add(data.getString(1));
}
data=null;
}
return dati;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (data != null)
data.close();
if (sqlDB != null)
sqlDB.close();
}
return null;
}
我破格錄取第一rawquery後()。
這是一個完美的作品的另一種方法:
SQLiteDatabase sqlDB = null;
Cursor data = null;
try {
sqlDB = openDataBase(SQLiteDatabase.NO_LOCALIZED_COLLATORS);
String[] posizioni=new String[]{"Grafici UL", "Grafici UR", "Grafici DL", "Grafici DR"};
String[] categorie=new String[posizioni.length];
String categorieTemp="";
for(int i=0; i<posizioni.length; i++){
data=sqlDB.rawQuery("SELECT CATEGORIA FROM cpm_analysis WHERE AREA_DISPLAY='"+posizioni[i]+"' AND ABILITATO <> 'no' ", null);
if(data.getCount()==0){
data=null;}
else{
while(data.moveToNext()){
categorieTemp=data.getString(0);
categorie[i]=categorieTemp;
}
data=null;
}
}
return categorie;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (data != null)
data.close();
if (sqlDB != null)
sqlDB.close();
}
return null;
}
哪裏錯了嗎?提前
編輯對不起我的英文不好,並感謝
請幫我>。 <我要瘋了......
重新編輯
好,我解決它。 Idk爲什麼但我不能從一個活動調用這個方法,所以我之前在Activity中調用它。它沒有打開數據庫.. Idk爲什麼@ _ @現在它可以工作... Ty全部:)
你可以發佈你的logcat異常嗎? –
和什麼是例外? – mihail
很難回答你的問題,沒有錯誤信息和/或堆棧跟蹤 – HitOdessit