0

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();
}
4

2 に答える 2