2014-10-30 255 views
1

我创建了一个包含3个字段(_id,nombre,telefono)的表格。Field _id始终为0

@Override 
public void onCreate(SQLiteDatabase db) { 
    String sql = "CREATE TABLE "+TABLE_NAME+" ("+ 
      KEY_ID +" INTEGER PRYMARY KEY, "+ 
      KEY_NOMBRE +" TEXT, "+ 
      KEY_TELEFONO +" TEXT);"; 

    db.execSQL(sql); 

} 
public void add(String nombre, String telefono, SQLiteDatabase database) { 
    ContentValues values = new ContentValues(); 
    values.put(KEY_NOMBRE,nombre); 
    values.put(KEY_TELEFONO,telefono); 

    database.insert(TABLE_NAME, null, values); 

} 

当我插入记录时,_id总是取值(0)。

回答

2

你必须在CREATE TABLE串错字:“PRYMARY”,而不是“主”。更改为:

String sql = "CREATE TABLE "+TABLE_NAME+" ("+ 
      KEY_ID +" INTEGER PRIMARY KEY, "+ 
      KEY_NOMBRE +" TEXT, "+ 
      KEY_TELEFONO +" TEXT);"; 
+0

我有一个问题,我得到0为_id。我的情况中的错误是,** _ id **不是主键中唯一的列。我无意中添加了其他列,例如我用'CREATE TABLE IF NOT EXISTS过道(_id INTEGER,aisleshopref INTEGER,aisleorder INTEGER DEFAULT 1000,aislename INTEGER,PRIMARY KEY(_id,aisleshopref,aisleorder,aislename));'。 – MikeT 2016-11-18 23:19:32