在创建简单的SQLite数据库Android应用程序时发现错误
**03-12 12:57:39.635: E/Database(333): Failure 1
(near "tablefriends": syntax error) on 0x29b2b0
when preparing 'create tablefriends(_id integer
primary key autoincrement,name text not null,address text);
当我在我的活动类中编写此代码时,我的应用程序甚至没有运行。但是如果我从活动类中删除了这个代码,我的应用程序就会运行但是当我将数据插入数据库时它会产生异常
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
FriendsDataSource s=new FriendsDataSource(this);
s.closedatabase();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
FriendsDataSource s=new FriendsDataSource(this);
s.opendatabase();
}
public static final String FRIENDS_TABLE_CREATE_STMT="create table"+TABLE_NAME+
"("+COLUMN_ID+" integer primary key autoincrement,"+
COLUMN_FRIEND_NAME+" text not null,"+COLUMN_ADDRESS+" text);";
答案 0 :(得分:2)
你的间距有问题,因为在连接字符串时经常发生这种情况;
"create table" + TABLE_NAME // becomes "create tablefriends"
当最终出现奇怪的SQL错误时,查看/跟踪生成的字符串以使其与您期望的匹配始终是一个好主意。在这种情况下,问题顶部的错误消息会显示错误。
正确的版本应该是;
"create table " + TABLE_NAME // becomes "create table friends"