2013-03-27 44 views
2

我试图创建Android的SQLite数据库,并收到此错误创建SQLite数据库时出错:“android.database.sqlite.SQLiteException:near(9598)”?

"android.database.sqlite.SQLiteException: near(9598)." 

在这条线:

db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," 
      + KEY_PH_NO + " TEXT)"); 

这是怎么回事错在这里?

+1

我认为这将有助于创建一个单独的字符串,该SQL命令并打印字符串..也许如果你编辑的问题,并补充说,也将帮助我们多一点来解决问题:) – Cata 2013-03-27 13:26:33

+0

请发布整体该类的代码。 – 2013-03-27 13:33:51

回答

2

该表是否已经存在?而是使用...

CREATE TABLE IF NOT EXISTS ... 

,并添加;

... + KEY_PH_NO + " TEXT);"); 
+0

这是一个很好的观点,如果它解决了我自己拥有的问题+1 – CloudyMarble 2013-03-27 13:24:33

+0

不,表格不存在,并且我添加了你所说的内容,但是仍然出现错误,但近(9598)更改为近12542)现在! – 2013-03-27 13:24:40

+0

您确定所有变量('KEY_ID','KEY_PH_NO',...)包含有效的列/表名吗? - 没有列两次?我知道,这听起来像一个愚蠢的问题,但是,你的陈述基本上没有任何问题。打开*可写*数据库? – Trinimon 2013-03-27 13:30:47

0

尽量保持KEY_ID是

private static final String KEY_ID = "_id"; 

希望这有助于你

0

您尝试创建语句(SQLFIDDLE)显示它实际上是好的,因为没有在012中定义的例外抛出让我觉得建筑的声明中它的东西,如文档指出:

SQLiteException

一个SQLite异常,说明有一个与SQL 错误解析执行

所以我会尝试分离这两个步骤,首先建立语句在一个字符串(包括输出,以确保它看起来像),然后尝试执行它。