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

+"=?" を使用して 3 番目のパラメーターを操作すると、いくつかの実際の値が検出されました。およびバリエーション (現在は 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();
    }
4

1 に答える 1

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);

上記のクエリに関して..2番目のパラメーター、つまり文字列配列は射影パラメーターであり、dbからフェッチしてカーソルに入力する列を意味します。

クエリで a、b、c、d、e... 変数の値が db の列の値と異なる可能性があるため、要求された列のカーソルに値が存在しないためです。

それが役立つことを願っています! ありがとう

于 2012-12-24T04:48:24.043 に答える