我一直在犯这个错误
错误代码: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();
}
});
答案 0 :(得分:0)
您必须在创建表格后添加一个空格:"create table "
答案 1 :(得分:0)
尝试删除所有表并重新启动它们,确保在单词之间保留所需的空格,当涉及空格时,尤其是在创建表时,SQL非常敏感。 SQL不区分大小写,但是使用小写和大写字母来区分不同的表创建。