2015-08-24 90 views
0

我有一個問題來創建一個表。如果我嘗試從第二個列中獲得值,android會在烤麪包中寫入一個空白區域。但是,如果我嘗試從第一個列中獲取值,則android會正確寫入該列的值。查詢函數寫入第一列並寫入第二列分別是等於。所以我認爲桌子的創作是個問題。但是,看看自己:android第二列返回沒有值

public SQLiteDatabase tabelleerstellen(){ 
    SQLiteDatabase leveldatabase = openOrCreateDatabase("leveldata.db",SQLiteDatabase.CREATE_IF_NECESSARY, null); 
    leveldatabase.setVersion(1); 
    final String CREATE_TABLE_LEVEL = 
      "CREATE TABLE IF NOT EXISTS tbl_level (" 
        + "id INTEGER PRIMARY KEY AUTOINCREMENT, " 
        + "ME1 TEXT, " 
        + "ME2 TEXT, " 
        + "ME3 TEXT, " 
        + "ME4 TEXT, " 
        + "ME5 TEXT, " 
        + "ME6 TEXT, " 
        + "ME8 TEXT, " 
        + "GESCHAFFT INTEGER);"; 
    leveldatabase.execSQL(CREATE_TABLE_LEVEL); 
    return leveldatabase; 
} 
public void tester(SQLiteDatabase leveldata){ 
    ContentValues cursortester = new ContentValues(); 
    cursortester.put("ME2","25"); 
    leveldata.insert("tbl_level",null,cursortester); 
    String[] testerpr = {"ME2"}; 
    Cursor testerprüfen = leveldata.query("tbl_level",testerpr,null,null, null, null,null,null); 
    testerprüfen.moveToFirst(); 
    String dada = testerprüfen.getString(testerprüfen.getColumnIndex("ME2")); 
    Toast testertoast = Toast.makeText(getApplicationContext(),dada,Toast.LENGTH_SHORT); 
    testertoast.show(); 
} 

回答

0

請檢查下列事項:

  1. 請確保該表是最新的..所以嘗試調用DROP TABLE IF EXISTS tbl_level;並重新創建表。
  2. 如果您運行測試,請確保表格完全是空的......因此請在測試開始時刪除所有內容。
  3. 如果在測試過程中表格可以包含元素,那麼請確保您檢查最後插入的元素。請注意,調用testerprüfen.moveToFirst();會將光標移動到表中的第一行,因此每次檢查該行即使該表包含50個元素也不是件好事。在這種情況下,你要麼使用排序選項在你的uese while (testerprüfen != null && testerprüfen.moveToNext()) {// Your code here}

總而言之查詢我覺得你的問題是,你已經在能夠插入一個以上的元素,但你總是隻檢查的第一個元素(以testerprüfen.moveToFirst();)。請注意,您還可以撥打cursor.moveToLast()方法。該方法將光標移動到表格中的最後一行。

+0

謝謝!!!這個答案解決了這個問題......來自德國的問候 –