简单的Android SQLite数据库插入代码

时间:2012-03-12 13:57:30

标签: android sqlite

在创建简单的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);";

1 个答案:

答案 0 :(得分:2)

你的间距有问题,因为在连接字符串时经常发生这种情况;

"create table" + TABLE_NAME // becomes "create tablefriends"

当最终出现奇怪的SQL错误时,查看/跟踪生成的字符串以使其与您期望的匹配始终是一个好主意。在这种情况下,问题顶部的错误消息会显示错误。

正确的版本应该是;

"create table " + TABLE_NAME // becomes "create table friends"