0

関数を使用して、テーブルから 1 つの値を取得しています。

public ArrayList selectValue(SQLiteDatabase sqliteDB, String contactEmail){
        Cursor c = sqliteDB.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE ContactEmail='"+contactEmail+"'",null);
        if (c != null ) {
            if  (c.moveToFirst()) {
                do {
                    double contactId = c.getDouble(c.getColumnIndex("ContactId"));
                    results.add("ContactEmail: " +contactEmail+ ",ContactId: " + contactId);
                }while (c.moveToNext());
            } 
        }
        return results;
    }

しかし、上記の関数はテーブルからすべての値を取得します.クエリの何が問題なのかわかりません..

私もこのように値をハードコーディングしようとしましたが、

Cursor c = sqliteDB.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE ContactEmail='peter@peter.com'",null);

しかし、これはすべての行も提供します。ここで何かが足りないのですか?? 助けてください

4

2 に答える 2

1

あなたの応答の人々に感謝します..私は問題を修正しました..

これが私がコードを変更して機能させる方法です、

public String selectValue(SQLiteDatabase sqliteDB, String contactEmail){

        String contactId="Nothing";

        Cursor c = sqliteDB.rawQuery("SELECT * FROM " + TABLE_NAME + " where ContactEmail = '"+contactEmail+"'", null);
        if (c != null ) {
            if  (c.moveToFirst()) {
                contactId = c.getString(c.getColumnIndex("ContactId"));
            }   
        }
        return contactId;
    }

再度、感謝します!!すてきな一日を!!

于 2012-10-14T10:59:36.537 に答える
-1

このようにしてみてください:

    SQLiteDatabase mDb;
    DataBaseHelper mDbHelper;
    mDbHelper = new DataBaseHelper(context);
    mDb = mDbHelper.getWritableDatabase();
    Cursor cursor = mDb.query(TABLE_NAME, null, ContactEmail + " =? ", new String[] { "peter@peter.com" }, null, null, null);
    //Continue with your code


private static class DataBaseHelper extends SQLiteOpenHelper {

        /* Create a helper object to create, open, and/or manage a database */
        DataBaseHelper(Context context) {
            super(context, TABLE_NAME, null, DATABASE_VERSION);
        }

        /* Called when the database is created for the first time */
        @Override
        public void onCreate(SQLiteDatabase db) {
                     //Your code
        }

            /* Called when the database needs to be upgraded*/ 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                      //Your code
        }
}
于 2012-10-14T07:40:19.390 に答える