Ошибка вставки руководитель от лвэ=нуль телефона=null имя=значение null aptno=нуль назначение=значение null.... Таблица visitortable не имеет столбца с именем contactperson
package com.example.vistiorg; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class VisitorDatabase extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 2; private static final String DATABASE_NAME = "visitordb"; private static final String DATABASE_TABLE = "visitortable"; //Column names for database private static final String KEY_ID = "id"; private static final String KEY_NAME = "name"; private static final String KEY_PHONE = "phone"; private static final String KEY_CONTACTPERSON = "contactperson"; private static final String KEY_APTNO = "aptno"; private static final String KEY_PURPOSE = "purpose"; private static final String KEY_DATE = "date"; private static final String KEY_TIME = "time"; private Visitor visitor; VisitorDatabase(Context context) { super(context, DATABASE_NAME,null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { //CREATE TABLE nametame(id INT PRIMARY KEY, name TEXT, phone INT, contactperson TEXT, aptno INT, purpose TEXT,date TEXT, time TEXT); String query= "CREATE TABLE "+DATABASE_TABLE+"("+ KEY_ID+" INT PRIMARY KEY,"+ KEY_NAME+" TEXT,"+ KEY_PHONE+" TEXT,"+ KEY_CONTACTPERSON+" TEXT,"+ KEY_APTNO+" TEXT,"+ KEY_PURPOSE+" TEXT,"+ KEY_DATE+" TEXT,"+ KEY_TIME+" TEXT"+")"; sqLiteDatabase.execSQL(query); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { if(i >= i1) return; sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " +DATABASE_TABLE); onCreate(sqLiteDatabase); } public long addVisitor(Visitor visitor) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues c= new ContentValues(); c.put(KEY_NAME, visitor.getName()); c.put(KEY_PHONE, visitor.getPhone()); c.put(KEY_CONTACTPERSON, visitor.getContactperson()); c.put(KEY_APTNO, visitor.getAptno()); c.put(KEY_PURPOSE, visitor.getPurpose()); c.put(KEY_DATE,visitor.getDate()); c.put(KEY_TIME, visitor.getTime()); //inserting data into db long ID= db.insert(DATABASE_TABLE, null,c); Log.d("Inserted", "ID ->"+ ID); return ID; } }
Что я уже пробовал:
Я попытался очистить данные приложения, удалить его. У меня это не сработало. Пожалуйста помочь.
Richard MacCutchan
Сообщение говорит вам, что все ваши значения посетителя равны нулю.
David Crow
Я не могу улучшить ответ Ричарда, но я хотел бы добавить, что я думаю _id
это обязательный столбец. Просто для усмешек, вы могли бы попробовать увеличить DATABASE_VERSION
.