2013-09-27 60 views
0

我在將我的搜索數據存儲到我的列表時遇到問題。任何人都可以檢查我的存儲陣列和數組列表的構造。謝謝。JAVA SQLite:錯誤的請求字段

Tag CursorWinow: bad request for field slot 0,12. numRows = 49, numColumns =12

public List<HashMap<String, String>> getAllDataFromTable(String tableName) {//, String[] ColumnList 
     List<HashMap<String, String>> TableDataCollection; 
     TableDataCollection = new ArrayList<HashMap<String, String>>(); 

     String selectQuery = "SELECT * FROM " +tableName; 
     SQLiteDatabase database = this.getWritableDatabase(); 
     Cursor cursor = database.rawQuery(selectQuery, null); 
     String ColumnCollection[]; 

     int totalRecord=cursor.getColumnCount(); 
     if(tableName=="tbl_account_codes") 
     { 
     if (cursor.moveToFirst()) { 
      do { 
       int i=cursor.getColumnNames().length; 
       ColumnCollection=new String[i]; 

       String MainColumnCollection[]; 
       MainColumnCollection=new String[i]; 
      String[] MyColumn= ColumnCollection=cursor.getColumnNames();//column 
       for(int a=0;a<=i;a++) 
       { 

        MainColumnCollection[a]=(cursor.getString(a).toString());//= ColumnCollection[a] 
        String z="wala lang"; 
        String x="wala lang"; 

        //String AssignCol= MyColumn[a]; 
       } 

       TableDataCollection.add((HashMap<String, String>) Arrays.asList(MainColumnCollection)); 
       String c="wala lang"; 
       } while (cursor.moveToNext()); 
      } 
      return TableDataCollection; 
      } 
TableDataCollection.add((HashMap<String, String>) Arrays.asList(MainColumnCollection)); 


我在這行有問題。由於

回答

1

試試下面這行

MainColumnCollection[a]=(cursor.getString(cursor.getColumnIndex("YOUR_COLUMN_NAME"))); 

,而不是

MainColumnCollection[a]=(cursor.getString(a).toString()); 

編輯

for循環刪除=和改變這樣

for(int a=0;a<i;a++) 
+0

我不想指出我的字符串列名稱先生,這就是爲什麼我用索引項目的for循環...因爲我想處理所有我的表格搜索與這個類功能.. – DreamBigAlvin

+0

感謝它的工作。我沒有正確的輸出。我需要將它顯示到數組列表中。 – DreamBigAlvin

+0

是的,先生,我接受你的答案。感謝您的幫助,for循環的條件至關重要。 – DreamBigAlvin