android
  • sqlite
  • select-query
  • 2012-10-14 125 views 0 likes 
    0

    我正在使用的功能,从表中检索一个值,在SQLite中选择查询?

    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='[email protected]'",null); 
    

    ,但是这也给所有行。我在这里错过了什么?请帮助

    +0

    你可以试试'LIKE'吗? – Abubakkar

    +0

    你可以显示'TABLE_NAME'的声明吗?那里有分号吗? –

    +0

    结果是列表<>所以它将您的所有值添加到列表的instread的明星把你的确切的colm名字 – Meghna

    回答

    -1

    尝试做这样的:

    SQLiteDatabase mDb; 
        DataBaseHelper mDbHelper; 
        mDbHelper = new DataBaseHelper(context); 
        mDb = mDbHelper.getWritableDatabase(); 
        Cursor cursor = mDb.query(TABLE_NAME, null, ContactEmail + " =? ", new String[] { "[email protected]" }, 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 
         } 
    } 
    
    +0

    '让我们同意不同意! – h2O

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

    再次感谢!!祝你有美好的一天!!

    相关问题