2017-08-02 57 views
-4

我沒有明白它,它保持崩潰,即使我有檢查代碼是否正確。它只是不斷告訴我沒有這樣的列日期。我將在這裏發佈我的代碼,用於DBHelper類。引起:android.database.sqlite.SQLiteException:沒有這樣的列:日期(代碼1):,編譯時:SELECT ID,名稱,描述,日期FROM任務

private static final String DATABASE_NAME = "tasks.db"; 
private static final int DATABASE_VERSION = 1; 
private static final String TABLE_TASK = "tasks"; 
private static final String COLUMN_ID = "id"; 
private static final String COLUMN_NAME = "name"; 
private static final String COLUMN_DESCRIPTION = "description"; 
private static final String COLUMN_DATE = "date"; 

@Override 
public void onCreate(SQLiteDatabase db) { 
    String createTaskTableSql = "CREATE TABLE " + TABLE_TASK + "(" 
      + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
      + COLUMN_NAME + " TEXT, " 
      + COLUMN_DESCRIPTION + " TEXT, " 
      + COLUMN_DATE + " DATETIME DEFAULT CURRENT_TIMESTAMP)"; 
    db.execSQL(createTaskTableSql); 
} 

public ArrayList<Lists> getAllLists() { 
    ArrayList<Lists> lists = new ArrayList<Lists>(); 

    String selectQuery = "SELECT " + COLUMN_ID + ", " 
      + COLUMN_NAME + ", " + COLUMN_DESCRIPTION + ", " + COLUMN_DATE + " FROM " + TABLE_TASK; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    if (cursor.moveToFirst()) { 
     do { 
      int id = cursor.getInt(0); 
      String listsName = cursor.getString(1); 
      String desc = cursor.getString(2); 
      String date = cursor.getString(3); 
      Lists allLists = new Lists(id, listsName, desc, date); 
      lists.add(allLists); 
     } while (cursor.moveToNext()); 
    } 
    cursor.close(); 
    db.close(); 
    return lists; 
} 

我無法確定問題。有人請幫助我。

+1

試試哦......我的壞...你是正確的重新安裝應用程序 – sumit

+0

。我只是重新安裝我的應用程序,它工作得很好。 Thx sumit。 –

+1

,以便它不會再發生覆蓋onUpgrade方法並重新創建表並更改數據庫版本,每次更改代碼中的內容 – sumit

回答

1

沒有這樣的列日

你有兩個選擇。

  1. 你應該卸載應用&再次運行
  2. 或者您可以修正onUpgrade方法。

DO

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    // If you want to add a column 
    if (newVersion > oldVersion) { 
     db.execSQL("ALTER TABLE ADD_NAME ADD COLUMN NEW_COLOUM INTEGER DEFAULT 0"); // You can add TEXT Field 
    } 
} 
+1

*您不能使用名稱字段日期*是的,他可以...'日期** **不是** SQLite關鍵字 – Selvin

+1

它已經正常工作。這個問題只是我必須重新安裝應用程序並再次運行那部分你是對的。 –

+0

@MobileDeveloper的確如此。檢查我編輯的答案 –

相關問題