2017-01-27 21 views
0

新しいコーディングでは、チュートリアルのコードをコピーしてコピーしますが、「スリープ」列のすべてのデータを削除しようとするとこのエラーが表示されます。sqliteデータベースでの削除時にエラーが発生する

android.database.sqlite.SQLiteException周辺 "20170128":構文エラー (コード1)、コンパイル中:DELETE FROM 20170128 android.database.sqlite.SQLiteConnection.nativePrepareStatementで (ネイティブ 方法) android.database.sqlite.SQLiteSession.prepare(SQLiteSessionでandroid.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) でandroid.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) で。 java:588)android.database.sqlite.SQLiteProgramの (SQLiteProgram.java:58)android.database.sqlite.SQL(SQLiteStatement.java:31)の(SQLiteStatement.java:31)android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1496)の (jm.myapplication.Sleep.sleep_repo.delete1)(sleep_repo.java :51) jm.myapplication.Main.MainActivity $ 1.onClick(MainActivity.java:220) at android.view.View.performClick(View.java:4780) android.view.View $ PerformClick.run( View.java:1,9866) (アンドロイド.os.Handler.handleCallback(Handler.java:739) (android.os.Handler.dispatchMessage(Handler.java:95) )android.os.Looper.loop(Looper。 java:135) android.app.ActivityThrea d.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal com.android.internal.os.ZygoteInit.mainで.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903) (ZygoteInit.java:698)

これは私のコードです。

これは私のothers.java

public class others { 

    // Labels table name 
    public static final String TABLE = "others"; 

    // Labels Table Columns names 
    public static final String KEY_ID = "id"; 
    public static final String KEY_sleep = "sleep"; 
    public static final String KEY_smoke = "smoke"; 
    public static final String KEY_exercise = "exercise"; 





    // property help us to keep data 
    public int Recent_f_id; 
    public Integer id; 
    public Integer sleep; 
    public Integer smoke; 
    public String exercise; 


} 

いる間に、これは私のsleep_repo.java

public void delete1(others sleep) { 

     // db.delete(String tableName, String whereClause, String[] whereArgs); 
     // If whereClause is null, it will delete all rows. 
     SQLiteDatabase db = dbHelper.getWritableDatabase(); // helper is object extends SQLiteOpenHelper 
     db.delete(getDateTime(),null,null); 
     /*db.delete(getDateTime(),others.KEY_ID+"=?",new String[] { String.valueOf(sleep) });*/ 
     db.close(); // Closing database connection 
    } 

ありながら、これは私の主な活動

public void onClick(View v) { 
       final Integer newSleep = sleep; 
        sleep_repo repo = new sleep_repo(MainActivity.this); 
        others sleep = new others(); 

        sleep.sleep = Recent_f_id; 
        sleep.sleep=newSleep; 

    repo.delete1(sleep); 

    Recent_f_id = repo.insert(sleep); 

    Toast.makeText(getApplicationContext(), 
      newSleep + " has been added", Toast.LENGTH_LONG) 
      .show(); 
    d.dismiss(); 
} 

にあり、これが私の日付です.java

public class Dates extends SQLiteOpenHelper { 
    //version number to upgrade database version 
    //each time if you Add, Edit table, you need to change the 
    //version number. 
    private static final int DATABASE_VERSION = 4; 



    public static String getDateTime() { 
     SimpleDateFormat dateFormat = new SimpleDateFormat(
       "yyyyMMdd", Locale.getDefault()); 
     Date date = new Date(); 
     return dateFormat.format(date); 
    } 

    // Database Name 
    private static final String DATABASE_NAME = getDateTime(); 

    public Dates(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase db) { 
     //All necessary tables you like to create will create here 

     String CREATE_TABLE_meals = "CREATE TABLE " + meals.TABLE + "(" 
       + meals.KEY_breakfast + " TEXT, " 
       + meals.KEY_lunch + " TEXT, " 
       + meals.KEY_dinner + " TEXT, " 
       + meals.KEY_other + " TEXT)"; 

     String CREATE_TABLE_drinks = "CREATE TABLE " + drinks.TABLE + "(" 
       + drinks.KEY_alcoholic + " TEXT, " 
       + drinks.KEY_water + " INTEGER)"; 

     String CREATE_TABLE_others = "CREATE TABLE " + others.TABLE + "(" 
       + others.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," 
       + others.KEY_sleep + " TEXT, " 
       + others.KEY_smoke + " INTEGER, " 
       + others.KEY_exercise + " INTEGER)"; 

     db.execSQL(CREATE_TABLE_meals); 
     db.execSQL(CREATE_TABLE_drinks); 
     db.execSQL(CREATE_TABLE_others); 

    } 

答えて

0

20170128は有効なテーブル名ではありません。 (大括弧または引用符で囲まれていない限り、テーブル名は数字で始めることはできません)。

+0

私は自分のエラーを認識しています。 db.delete(getDateTime()、null、null); whichhは でなければなりません.db.delete(others.TABLE、others.KEY_sleep、null); あなたの答えがありがとう、あなたの答えのために、私は間違いを認識しません。あなたの答えを私の心に留めておきます。ありがとう兄貴! –

関連する問題