数据库错误 - 如何解决?

时间:2018-05-03 16:24:13

标签: android sqlite

我一直在犯这个错误

  

错误代码:1(SQLITE_ERROR)                                                                                       引起:SQL(查询)错误或缺少数据库。 (接近" tablenames_and_addresses&#34 ;:语法错误(代码1):,同时编译:create tablenames_and_addresses(_id整数主键自动增量不为null,名称文本不为null,年龄文本不为null);)   at com.example.charisse.nd3a.DataManager $ CustomSQLiteOpenHelper.onCreate(DataManager.java:42)

数据管理器代码

 public void onCreate(SQLiteDatabase db) {
    String newTableQueryString = "create table"
                + TABLE_N_AND_A + " ("
                + TABLE_ROW_ID
                + " integer primary key autoincrement not null,"
                + TABLE_ROW_NAME
                + " text not null,"
                + TABLE_ROW_AGE
                + " text not null);";

        db.execSQL(newTableQueryString); //error points to this

}



   public DataManager(Context context) {
        CustomSQLiteOpenHelper helper = new CustomSQLiteOpenHelper(context);
        db = helper.getWritableDatabase(); //error
}

主要活动.java

    final DataManager dm = new DataManager(this);

//

  btnInsert.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        dm.insert(etName.getText().toString(), etAge.getText().toString());
        Toast.makeText(MainActivity.this,etName.getText().toString() + " has 
        been inserted!", Toast.LENGTH_SHORT).show();
 }
});

2 个答案:

答案 0 :(得分:0)

您必须在创建表格后添加一个空格:"create table "

答案 1 :(得分:0)

尝试删除所有表并重新启动它们,确保在单词之间保留所需的空格,当涉及空格时,尤其是在创建表时,SQL非常敏感。 SQL不区分大小写,但是使用小写和大写字母来区分不同的表创建。