Я видел некоторые вопросы, относящиеся к этой теме (например, эта ), но я думаю, что у меня все было в порядке, и я уже пробовал изменения имени базы данных, изменения версии базы данных, пере -строительный ...
Это мой код помощника:
private static final int DATABASE_VERSION = 2;
private static final String CONTACTS_TABLE = "contact";
private static final String DATABASE_NAME = "contactlist";
// Column names...
public static final String KEY_ID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_FAMILY_NAME = "family_name";
public static final String KEY_PHONE = "phone";
public static final String KEY_EMAIL = "email";
public static final String KEY_ADDRESS = "address";
public static final String KEY_ADD_PHONE = "additional_phone";
// ... and a string array of columns.
private static final String[] COLUMNS = {KEY_ID, KEY_NAME, KEY_FAMILY_NAME,
KEY_PHONE, KEY_EMAIL, KEY_ADDRESS, KEY_ADD_PHONE};
// Build the SQL query that creates the table.
private static final String CONTACTS_TABLE_CREATE =
"CREATE TABLE " + CONTACTS_TABLE + " (" +
KEY_ID + " INTEGER PRIMARY KEY, " +
KEY_NAME + " TEXT, " +
KEY_FAMILY_NAME + "TEXT, " +
KEY_PHONE + "TEXT, " +
KEY_EMAIL + "TEXT, " +
KEY_ADDRESS + "TEXT, " +
KEY_ADD_PHONE + "TEXT);";
public ContactHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
Log.d(TAG, "Construct WordListOpenHelper");
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CONTACTS_TABLE_CREATE);
fillDatabaseWithData(db);
}
Теперь это метод вставки:
public long insert(Contact newContact) {
long newId = 0;
ContentValues values = new ContentValues();
values.put(KEY_NAME, newContact.contactName);
values.put(KEY_FAMILY_NAME, newContact.familyName);
values.put(KEY_PHONE, newContact.contactPhone);
values.put(KEY_EMAIL, newContact.email);
values.put(KEY_ADDRESS, newContact.address);
values.put(KEY_ADD_PHONE, newContact.additionalPhone);
try {
if (mWritableDB == null) {mWritableDB = getWritableDatabase();}
newId = mWritableDB.insert(CONTACTS_TABLE, null, values);
} catch (Exception e) {
Log.d(TAG, "INSERT EXCEPTION! " + e.getMessage());
}
return newId;
}
Здесь я вызываю метод вставки после получения всех данных из EditTexts:
public void saveNewContact(){
// Getting contact information
this.getContactInformation();
mDB.insert(newContact);
Intent intent = new Intent(getBaseContext(), ContactListActivity.class);
startActivity(intent);
}
Я получаю ошибку:
table contacts has no column named address
05-11 15:19:31.732 9363-9363/com.example.patricia.contactlist E/SQLiteDatabase: Error inserting name=Patricia address=UNKNOWN family_name=Vera phone=699999999 email=UNKNOWN additional_phone=UNKNOWN
android.database.sqlite.SQLiteException: table contacts has no column named address (code 1): , while compiling: INSERT INTO contacts(name,address,family_name,phone,email,additional_phone) VALUES (?,?,?,?,?,?)
Заранее спасибо!