db.insert随机添加值?

时间:2012-03-21 21:41:33

标签: android sqlite

问题很简单,只需一行:“SQLiteDatabase for Android的insert()函数尝试以随机方式添加值”。

意义:

// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
        + TABLE_NAME 
        +"( "
        + COLUMN_ID + " integer primary key autoincrement, "
        + COLUMN_LATITUDE + "integer,"
        + COLUMN_LONGTITUDE + "integer,"
        + COLUMN_TITLE + "text,"
        + COLUMN_TEXT + " text not null"
        + ");";

当我输入值并尝试插入它们时:

values.put(COLUMN_ID, marker.getId() );
values.put(COLUMN_LATITUDE, marker.getLatitude()  ); // lat
values.put(COLUMN_LONGTITUDE, marker.getLongtitude() ); // long     
values.put(COLUMN_TITLE, marker.getTitle()  ); // Title     
values.put(COLUMN_TEXT, marker.getText() ); // Text     

// Inserting Row
        db.insert(TABLE_NAME, null, values);

但我得到的错误是:  E / Database(2542):android.database.sqlite.SQLiteException: table Items没有名为longtitude的列:,同时编译:INSERT INTO项目(longtitude,text,title,latitude,_id)VALUES( ?,?,?,?,?);

所以我猜是试图将长度放在Id所在的位置并导致错误。

我的假设是对的吗?我需要改变什么?

1 个答案:

答案 0 :(得分:1)

你的create table语句中有一个错误,你在类型(整数,文本)之前缺少一些空格,这里是正确的版本:

private static final String DATABASE_CREATE = "create table "
    + TABLE_NAME 
    +"( "
    + COLUMN_ID + " integer primary key autoincrement, "
    + COLUMN_LATITUDE + " integer,"
    + COLUMN_LONGTITUDE + " integer,"
    + COLUMN_TITLE + " text,"
    + COLUMN_TEXT + " text not null"
    + ");";

在您未创建名为“longitude”的列之前。而是创建了“longitudeinteger”