当前位置: 首页 > 知识库问答 >
问题:

在sqlite数据库中删除时出错

邓深
2023-03-14

我在编码方面是新手,所以我复制粘贴了一些教程的代码,但是当我试图删除“睡眠”列中的所有数据时,出现了这个错误。

Android数据库sqlite。SQLiteException:在“20170128”附近:编译时出现语法错误(代码1)::在android上从20170128删除。数据库sqlite。SQLiteConnection。android上的nativePrepareStatement(本机方法)。数据库sqlite。SQLiteConnection。android上的acquirePreparedStatement(SQLiteConnection.java:889)。数据库sqlite。SQLiteConnection。在android上准备(SQLiteConnection.java:500)。数据库sqlite。SQLiteSession。在android上准备(SQLiteSession.java:588)。数据库sqlite。Sqlite程序。(SQLiteProgram.java:58)在android上。数据库sqlite。SQLITE声明。(SQLiteStatement.java:31)在android上。数据库sqlite。SQLITE数据库。在jm上删除(SQLiteDatabase.java:1496)。我的申请。睡觉睡吧。jm的delete1(sleep_repo.java:51)。我的申请。主要的主要活动1美元。android上的onClick(MainActivity.java:220)。看法看法android上的performClick(View.java:4780)。看法查看$PerformClick。在android上运行(View.java:19866)。操作系统。汉德勒。android上的handleCallback(Handler.java:739)。操作系统。汉德勒。android上的dispatchMessage(Handler.java:95)。操作系统。活套。android上的loop(Looper.java:135)。应用程序。活动线程。java上的main(ActivityThread.java:5254)。朗,反思一下。方法在java上调用(本机方法)。朗,反思一下。方法在com上调用(Method.java:372)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(zyteinit.java:903)。Android内部的操作系统。合子岩。main(ZygoteInit.java:698)

这是我的密码。

这是我的主要活动

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

虽然这是我的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;


}

这是我的约会对象。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);

    }

共有1个答案

太叔马鲁
2023-03-14

20170128不是有效的表名。(除非用方括号或引号括起来,否则表名不能以数字开头)。

 类似资料:
  • 附注。我对Sqlite没有太多的经验

  • 问题内容: 我正在使用回收者视图和SQLite数据库创建一个应用程序。当用户输入一些数据时,它会显示在“回收者”视图中,并且还会添加到我的数据库中。现在,我想在回收者视图中实现功能。 我想要的是: 我想同时从数据库和回收者视图中删除所需的行,而不会得到任何意外结果。并且所有行均应删除。 我尝试过的 我实现了对回收视图(我使用cardView作为回收鉴于行)。现在,当使用它的长按时,我将获得适配器位

  • 这是提供用户输入的主活动 } 这是Add_prople类 公共类Add_people扩展AppCompatActivity实现视图。OnClickListener{private EditText name EditText;private EditText ageEditText;private EditText heightEditText;private EditText weightede

  • 我以为上面的办法行得通,但它失败了。我把它放在渲染行部分。它出现了reference.remove失败。第一个参数必须是有效的函数。就像在这些房间里,它有信息,我认为这是我出错的地方,但我不知道如何去做它。谢谢。

  • 我对Room有一个问题,我在其他地方找不到帮助——在SQLite中使用“LIKE”时匹配任意数量字符的常用“%”与我们在团队项目中使用的Room delete查询不兼容。 我们在Kotlin中有一个定义为字符串的删除查询,在我们的一个DAO中: 以及同一DAO中的deleteRequest: 但是,在“:reservationCode”参数引用周围添加百分比符号后,我们会出现以下错误: 输入“从u