将数据插入sqlite
数据库时出错。这是我的查询。有什么问题。
我无法摆脱这种局面。我认为错误是因为创建表格中的空间,我需要进行更改。
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT," + KEY_MACID + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
这是我得到的错误。
Error inserting macid=benbena phone_number=01-04-2016 17:32:31 PM name=testlock1@acttv.in android.database.sqlite.SQLiteException: table contacts has no column named macid (code 1): , while compiling: INSERT INTO contacts(macid,phone_number,name) VALUES (?,?,?)
答案 0 :(得分:0)
建议先创建一个Contact Class来轻松处理数据。但是,如果没有这个,我将如何完成数据库输入任务:
自定义SQLiteOpenHelper类:
public class DBHandlerTest extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "database.db";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_CONTACTS = "contacts";
public static final String KEY_ID = "id";
public static final String KEY_NAME = "name";
public static final String KEY_PH_NO = "phone_number";
public static final String KEY_MACID = "macid";
public static final String CREATE_CONTACTS_TABLE =
"CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NAME + " TEXT(255) NOT NULL, "
+ KEY_PH_NO + " TEXT(255) NOT NULL, "
+ KEY_MACID + " TEXT(255) NOT NULL" + ")";
public DBHandlerTest(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_CONTACTS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
//re-create db
onCreate(db);
}
public void insertContact(String name, String phoneNumber, String macID) {
//create db instance
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contactValues = new ContentValues();
//get the values
contactValues.put(KEY_NAME, name);
contactValues.put(KEY_PH_NO, phoneNumber);
contactValues.put(KEY_MACID, macID);
//insert row into db
db.insert(TABLE_CONTACTS, null, contactValues);
db.close();
}
}
实施方法:
DBHandlerTest db = new DBHandlerTest(this);
db.insertContact("test@test.com", "0800-123456", "test_id");
db.close();