2017-01-16 84 views
0

我已經創建了一個Sugar ORM數據庫成功地在我的應用程序,我可以更新,刪除,也可以從一個行中獲取所有數據,但我想單列數據匹配另一個數據...如何檢索從一個Android糖orm數據庫的單列數據

我的意思是,我有一個領域註冊數據庫:usernamepasswordfirst_namelast_nameemail領域。

登錄後右用戶名和密碼的用戶,我想該用戶將First_NameTextview發送到下一個Activity ...... 我怎樣才能做到這一點?在過去的兩天我已經嘗試,但失敗了,請幫助我... 在此先感謝...

回答

0

您是否嘗試運行這樣的原始查詢?

List<Note> notes = Note.findWithQuery(Note.class, "Select * from Note where name = ?", "satya"); 

來自:http://satyan.github.io/sugar/query.html

+0

是的,但只是這個查詢執行正確...這個查詢返回所有數據從數據庫,每一行數據和每列數據...... 但我只想要字段數據......你能幫忙嗎? –

+0

我覺得這個功能還沒有準備好,我發現這個問題https://github.com/satyan/sugar/issues/270 – mcatta

+0

非常感謝你@mcatta,我也是這樣... –

0

您可以添加功能SugarRecord.java永遠

public static String Scaler(String Query) { 
    String Result = ""; 

    SugarDb db = getSugarContext().getSugarDb(); 
    SQLiteDatabase sqLiteDatabase = db.getDB(); 

    SQLiteStatement sqLiteStatament = sqLiteDatabase 
      .compileStatement(Query); 

    try { 
     Result = sqLiteStatament.simpleQueryForString(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     sqLiteStatament.close(); 
    } 

    return Result; 
} 

public static String Scaler(String Query) { 
    String Result = ""; 
    SQLiteDatabase sqLiteDatabase =    SugarContext.getSugarContext().getSugarDb().getDB(); 

    SQLiteStatement sqLiteStatament = sqLiteDatabase 
      .compileStatement(Query); 

    try { 
     Result = sqLiteStatament.simpleQueryForString(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     sqLiteStatament.close(); 
    } 
    return Result; 
} 

的縮放(「從記下的名字='阿里SELECT名字'limit 1「);

0
public static List<String> getResultWithRawQuery(String rawQuery, Context mContext) { 
     List<String> stringList = new ArrayList<>(); 
     if (mContext != null) { 
      long startTime = System.currentTimeMillis(); 
      SugarDb sugarDb = new SugarDb(mContext); 
      SQLiteDatabase database = sugarDb.getDB(); 

      try { 
       Cursor cursor = database.rawQuery(rawQuery, null); 
       try { 
        if (cursor.moveToFirst()) { 
         do { 
          stringList.add(cursor.getString(0)); 
         } while (cursor.moveToNext()); 
        } 
        Timber.d(cursor.getString(0), "hi"); 
       } finally { 
        try { 
         cursor.close(); 
        } catch (Exception ignore) { 
        } 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      long endTime = System.currentTimeMillis(); 
      long totalTime = endTime - startTime; 
      System.out.println("total time query" + totalTime); 
     } 
     return stringList; 
    } 

另一個在列中返回值列表的例子。這樣使用: String rawQuery = ("SELECT feed_key FROM team_feed_key WHERE team_id = " + mTeam_id + " ORDER BY feed_key DESC");