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
このエラーが発生する理由がわかりませんでした。変数は更新クエリに転送されないと思います
ここに私の更新クエリがあります
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 から値を取得し、これらの値を mainactivity の string 変数と int 変数に入れ、次のコードを記述します。
info.open();
info.update(intid, contactname, contactphone, contactnick);
info.close();
これはデータベースの作成 public class 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();
}