Таблица contact_info не имеет столбца с именем email (код 1): , при компиляции: INSERT into contact_info(email, name, contact_id) VALUES(? , ? , ? ) я получаю эту ошибку
package com.example.exe_app; public class contactcontract { private contactcontract() {} public static class contactEntry{ public static final String TABLE_NAME="contact_info"; public static final String CONTACT_ID="contact_id"; public static final String NAME="name"; public static final String EMAIL="email"; } }
package com.example.exe_app; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class ContactDbHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME="contact_db"; public static final int DATABASE_VERSION=1; public static final String CREATE_TABLE= "create table "+ contactcontract.contactEntry.TABLE_NAME+ "("+contactcontract.contactEntry.CONTACT_ID+" number,"+contactcontract.contactEntry.NAME+" text,"+contactcontract.contactEntry.EMAIL+" text);"; public static final String DROP_TABLE="drop table if exists "+contactcontract.contactEntry.TABLE_NAME; public ContactDbHelper(Context context) { super(context,DATABASE_NAME, null,DATABASE_VERSION); Log.d("databse crestion ", "databse created..."); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(CREATE_TABLE); Log.d("databse crestion ", "table is created..."); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL(DROP_TABLE); onCreate(sqLiteDatabase); } public void addContact(int id, String name,String email,SQLiteDatabase databse){ ContentValues contentValues=new ContentValues(); contentValues.put(contactcontract.contactEntry.CONTACT_ID,id); contentValues.put(contactcontract.contactEntry.NAME,name); contentValues.put(contactcontract.contactEntry.EMAIL,email); databse.insert(contactcontract.contactEntry.TABLE_NAME,null,contentValues); Log.d("databse crestion ", "one row is inserted..."); } }
package com.example.exe_app; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class ContactDbHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME="contact_db"; public static final int DATABASE_VERSION=1; public static final String CREATE_TABLE= "create table "+ contactcontract.contactEntry.TABLE_NAME+ "("+contactcontract.contactEntry.CONTACT_ID+" number,"+contactcontract.contactEntry.NAME+" text,"+contactcontract.contactEntry.EMAIL+" text);"; public static final String DROP_TABLE="drop table if exists "+contactcontract.contactEntry.TABLE_NAME; public ContactDbHelper(Context context) { super(context,DATABASE_NAME, null,DATABASE_VERSION); Log.d("databse crestion ", "databse created..."); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(CREATE_TABLE); Log.d("databse crestion ", "table is created..."); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL(DROP_TABLE); onCreate(sqLiteDatabase); } public void addContact(int id, String name,String email,SQLiteDatabase databse){ ContentValues contentValues=new ContentValues(); contentValues.put(contactcontract.contactEntry.CONTACT_ID,id); contentValues.put(contactcontract.contactEntry.NAME,name); contentValues.put(contactcontract.contactEntry.EMAIL,email); databse.insert(contactcontract.contactEntry.TABLE_NAME,null,contentValues); Log.d("databse crestion ", "one row is inserted..."); } }
package com.example.exe_app; public class contactcontract { private contactcontract() {} public static class contactEntry{ public static final String TABLE_NAME="contact_info"; public static final String CONTACT_ID="contact_id"; public static final String NAME="name"; public static final String EMAIL="email"; } }
Что я уже пробовал:
я попытался поставить пробел между текстом имени и текстом электронной почты
Richard MacCutchan
Используйте отладчик для проверки сгенерированных инструкций. Также попробуйте использовать командный инструмент SQLite для отображения схемы созданной базы данных.