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

Android SQLite异常语法错误(代码1)

唐宇定
2023-03-14

我正在使用SQLiteHelper创建一个数据库,当应用程序尝试运行时,我不断收到异常。

这是我收到的错误消息:引起原因:android.database.sqlite.SQLiteExcture:附近"Trip":语法错误(代码1):,而编译:创建表商务旅行支出(desc文本主键,餐整数不为空,饮料整数不为空,旅行整数不为空,住宿整数不为空,其他整数不为空,Receipt_Retained?Real NO NULL,Created_at文本NO NULL);

js lang-js prettyprint-override">public class MySQLiteHelper extends SQLiteOpenHelper {

    public static final String TABLE_NAME = "Business Trip Expenditure";
    //Column Names
    public static final String COLUMN_NAME = "desc";
    public static final String MEAL_COST ="Meals";
    public static final String DRINK_COST = "Drinks";
    public static final String TRAVEL_COST = "Travel";
    public static final String ACCO_COST = "Accommodation";
    public static final String OTHER_COST = "Other";
    public static final String HAS_RECEIPT = "Receipt_Retained?";
    public static final String CREATED_AT = "Created_at";

    private static final String DATABASE_NAME = "task.db";
    private static final int DATABASE_VERSION = 1;

    // Database creation sql statement
    private static final String DATABASE_CREATE = "create table "
            + TABLE_NAME + "( " + COLUMN_NAME + " text primary key , " + MEAL_COST + " integer NOT NULL , " + DRINK_COST + " integer NOT NULL , " + TRAVEL_COST + " integer NOT NULL , " + ACCO_COST + " integer NOT NULL , " + OTHER_COST + " integer NOT NULL , " + HAS_RECEIPT + " real NOT NULL , " + CREATED_AT + " text NOT NULL );";

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

    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DATABASE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(MySQLiteHelper.class.getName(),
                "Upgrading database from version " + oldVersion + " to "
                        + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
}

如果有人能帮助我创建表的语法,我将不胜感激,我知道这种形式的代码在语法方面很挑剔。

共有1个答案

葛航
2023-03-14

变化:

public static final String TABLE_NAME = "Business Trip Expenditure";

public static final String TABLE_NAME = "Business_Trip_Expenditure";
 类似资料:
  • 在构造方法中无法使用返回值,因此遇到错误只能抛出异常,而不应该使用Fatal Error 如果是用户使用方法存在问题,必须要修改程序代码,这类错误可以抛出Fatal Error 非构造方法,只return false,并设置错误码,而不是抛出异常

  • 问题内容: 您认为可以在异常内使用错误代码来指定错误类型吗?请看下面的代码: 我知道在此示例中使用枚举而不是字符串会更好,但是我实际上担心错误代码的概念。您认为在这里异常层次结构会更好吗?我找不到任何权威来源指出异常中的错误代码是反模式的。谢谢。 问题答案: 如果您想根据导致异常(无效名称或无效ID)的原因做出不同的响应(在代码中),那么我建议您使用不同的异常。 如果不是,那么您甚至不需要该方法,

  • 私有静态final int DATABASE_VERSION=1;私有静态最终字符串DATABASE_NAME=“unitconversion.db”;

  • 我试图使用SQlite,但出现了以下错误: e/sqlite ;异常:“)”附近:语法错误(代码1 SQLITE_ERROR):,编译时:如果不存在则创建表联系人(_id整数主键自动增量、名称文本、组织文本、电话整数、地址文本、电子邮件文本、web_ad文本、inf文本、生日文本NULL,) 我猜应该是我的代码的这一部分: 这很奇怪,因为一开始SQL_CREATE_ENTRIES如下所示,并且没有

  • 本章主要列出 JA 的错误代码,供开发者参考 异常代码 描述 原因 解决方案 2000 Success - - 5000 Failure 多为系统异常,如 JA 本身的 BUG,或者其他原因 请参考控制台异常栈 5001 Not Implemented 方法未实现 ① 针对自定义的 oauth 平台,请检查你的代码,是否存在未实现必要接口的问题; ② 针对 JA 内置的平台,说明该平台的某个方法暂

  • 错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以了解在第8行MySQL中使用“NOT NULL,date\u cree timestamp,PRIMARY KEY(id)NOT NULL,)ENGINE=InnoDB”附近的正确语法