2012-12-24 37 views
0
SQLiteDatabase db = this.getReadableDatabase(); 
Cursor mCursor =db.query(TABLE_ACCOUNTS, new String[]{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s}, null,null, null, null, null); 

我的問題是: 將這個初始化允許在DB數據庫&表返回所有值?使用參數

據我的項目,它似乎只是返回NULL值。 (無錯誤) a = null,b = null,c = null

當我用+「=?」操作第三個參數時檢測到一些實際值。和變化(現在爲空)。

或者可以預防實際值是別的嗎? (假設將數據添加到DB作品)

(添加代碼)

public void addAccount() { 
     SQLiteDatabase db = this.getWritableDatabase(); 
    Account account = new Account(); 
     ContentValues values = new ContentValues(); 
     values.put(id, account.getA()); // Contact Name 
     values.put(a, account.getA()); // Contact Phone Number 
     values.put(b, account.getB()); // Contact Phone Number 
     values.put(c, account.getC()); 
... 

     db.insert(TABLE_ACCOUNTS, null, values); 
     db.close(); // Closing database connection 

    } 

(光標代碼)

if ((mCursor != null && mCursor.moveToFirst())) { 

      do { 
       stringResult1 = 
         "a: "+ mCursor.getString(0)+ "\n" 
        + "b: " + mCursor.getString(1) + "\n" 
        + "c: " + mCursor.getString(2) + "\n" 
        + "d: " + mCursor.getString(3) + "\n" 
        + "e: " + mCursor.getString(4) + "\n" 
        + "f: " + mCursor.getString(5) + "\n" 
        + "g: " + mCursor.getString(6) + "\n" 
        + "h: " + mCursor.getString(7) + "\n" 
        + "i " + mCursor.getString(8) + "\n" 
        + "j: " + mCursor.getString(9) + "\n" 
        + "k: " + mCursor.getString(10) + "\n" 
        + "l: " + mCursor.getString(11) + "\n" 
        + "m: " + mCursor.getString(12) + "\n" 
        + "n: " + mCursor.getString(13) + "\n" 
        + "o: " + mCursor.getString(14) + "\n" 
        + "p: " + mCursor.getString(15) + "\n" 
        + "q: " + mCursor.getString(16) + "\n" 
        + "r: " + mCursor.getString(17) + "\n" 
        + "s: " + mCursor.getString(18) + "\n"; 
      } while (mCursor.moveToNext()); 


     // make sure to close the cursor 
     mCursor.close(); 
    } 
+0

什麼是a,b,c,d ....?他們是字符串變量 – TNR

+0

是 字符串CREATE_CONTACTS_TABLE =「CREATE TABLE」+ TABLE_ACCOUNTS +「(」 + a +「TEXT PRIMARY KEY」,+ b +「TEXT」, + c +「TEXT」+ d +「TEXT, 「+ e +」文本,「+ f +」文本,「+ g +」文本「+ h +」文本「+ i +」文本「+ j +」文本「+ k +」文本「 「+ m +」TEXT,「+ n +」TEXT「,+ o +」TEXT「,+ p +」TEXT「+ q +」TEXT「+ r +」TEXT「 db.execSQL(CREATE_CONTACTS_TABLE); – babyhir

+0

你還可以添加變量聲明代碼嗎? – TNR

回答

0
Cursor mCursor =db.query(TABLE_ACCOUNTS, new String[]{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s}, null,null, null, null, null); 

關於上述查詢..第二參數即一個字符串數組是投影參數意味着你想從數據庫中獲取並填充到光標中的列。

因爲如果在查詢中a,b,c,d,e ...變量的值可能與db中列的值不同,所以請求列的遊標中不存在值。

希望有幫助!謝謝

+0

欣賞relsell的想法。大多數示例都是以這種方式定義元素並進行查詢。 此外,在操作參數之前有實際值提示。 我相信還有其他不妥之處。 – babyhir

+0

即使在創建/插入過程中,表格的值顯然爲NULL。 分類出來。感謝幫助的人! – babyhir