2011-12-11 45 views
0
private static final String Memo_ID = "_ID"; 

這是我創建表的代碼,是沒有問題的查詢後,調用getInt光標力關閉我的應用程序

private static final String MemoDB_CREATE = "create table Memo (_ID integer primary key autoincrement, MemoName text, MemoPW text, MainType text, SecType text, MainID text, SecID text)"; 

db.execSQL(MemoDB_CREATE); 

這裏是查詢代碼。我有強制關閉,因爲getInt方法

openDB(); 
String[] col = new String[] {Memo_ID}; 
Cursor c = db.query(Memo_Table, col, null, null, null, null, null); 
int[] result = new int[c.getCount()-1];  
if(c.moveToFirst()){ 
    for (int i = 0; i < c.getCount(); i++){ 
      result[i] = c.getInt(c.getColumnIndex(Memo_ID)); 
      c.moveToNext(); 
    }//end of for 
}    
c.close(); 
db.close(); 

我希望所有的ID在id列就是爲什麼我把空到查詢方法

我的日誌貓http://upic.me/i/oe/80untitled.jpg

+0

你得到什麼異常到底是什麼? – Mat

+0

我不寫任何異常代碼;( – Pandy

+0

當你得到力量時,什麼是logcat? – Mat

回答

0

無論是從

int[] result = new int[c.getCount()-1]; 

去除-1或它的c.getCount()後,添加到

for (int i = 0; i < c.getCount(); i++){ 

for (int i = 0; i < c.getCount() - 1; i++){ 

我不知道你是什麼意圖是如此不能告訴你哪一個是最好的,但我懷疑你需要從數組聲明中刪除-1。如果不是,請在查詢返回零結果時注意負數大小的數組異常! c.getCount() - 1將導致-1,並且不能有大小爲-1的數組。

希望這會有所幫助。

0

的第三個參數從logcat的,你可能有一個未找到列的問題。有沒有Memo_ID列?

+0

有一個_ID列,, Memo_ID是_ID列的字符串變量 /////////// private static final String Memo_ID =「_ID」; – Pandy

+0

您可以再次獲得logcat,但在screengrab之前展開該列,以便文本全部可見。 – barry

1

變化:

int[] result = new int[c.getCount()-1]; 

要:

int[] result = new int[c.getCount()];` 
+0

其工作!謝謝 – Pandy

相關問題