2013-07-04 5 views
0

, когда я пытаюсь обновить мои данные на SQLite эта ошибка происходитSQLite ошибка запроса обновления на андроид

07-04 07:20:52.289: E/AndroidRuntime(2633): android.database.sqlite.SQLiteException: no such column: nick (code 1): , while compiling: UPDATE Contacts SET phone=?,nick=?,_id=?,name=? WHERE _id=2 

я не понял, почему это произошло это ошибка. я думаю, что переменное Dont передать запрос обновления

вот мой запрос

public void update(int id, String name, String phone, String nick) throws SQLException{ 

    ContentValues cvUpdate=new ContentValues(); 
    cvUpdate.put(KEY_ID,id); 
    cvUpdate.put(KEY_NAME,name); 
    cvUpdate.put(KEY_PHONE,phone); 
    cvUpdate.put(KEY_NICK,nick); 
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_ID+"="+id, null); 

обновления и я получаю значение от EditText Andi положить эти значения в строку и Int переменный в mainactivity тогда я пишу этот код:

   info.open(); 
       info.update(intid, contactname, contactphone, contactnick); 
       info.close(); 

это cretaion базе данных общественного класса contacts_nick {

//private static final String TAG = contacts_nick.class.getSimpleName(); 

public static final String KEY_ID="_id"; 
public static final String KEY_NAME="name"; 
public static final String KEY_PHONE="phone"; 
public static final String KEY_NICK="nick"; 

private static final String DATABASE_NAME="mydb"; 
private static final String DATABASE_TABLE="Contacts"; 
private static final int DATABASE_VERSION=1; 

private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 

private static class DbHelper extends SQLiteOpenHelper{ 

    public DbHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    //To create db 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE " +DATABASE_TABLE+ " (" +KEY_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "+KEY_NAME+" TEXT, "+KEY_PHONE+" TEXT);"); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); 
     onCreate(db); 

    } 

} 



public contacts_nick(Context c){ 
    ourContext=c; 
} 

public contacts_nick open() throws SQLException{ 
    ourHelper=new DbHelper(ourContext); 
    ourDatabase=ourHelper.getWritableDatabase(); 
    return this; 

} 
public contacts_nick open_read() throws SQLException{ 
    ourHelper=new DbHelper(ourContext); 
    ourDatabase=ourHelper.getReadableDatabase(); 
    return this; 

} 

public void close(){ 
    ourHelper.close(); 
} 
+0

вы уверены, что you'r команда создания базы данных для точно, что вы хотите? Я думаю, что есть проблема с созданием колонки you'r nik. – pooyan

+0

если возможно, дайте мне знать вашу команду создания для вашей БД. – pooyan

+0

да моя база данных делает операцию создания и вставки, но не обновляет, я отправлю создание db –

ответ

0

Замените эту строку в классе базы данных

db.execSQL("CREATE TABLE " +DATABASE_TABLE+ " (" +KEY_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "+KEY_NAME+" TEXT, "+KEY_PHONE+" TEXT, "+KEY_NICK+" TEXT);");

1

Ваша проблема в том, что вы не добавили столбец Nick в свою базу данных.

Смежные вопросы