所以我想这是一个非常普遍的问题,在网上搜索我发现我不是唯一一个遇到这种问题的人,是的,我知道有一个问题几乎相同的标题,但是没有帮助解决我面临的问题......所以让我们从头开始
我只是想插入我创建的表中。 该表有三列:“id”,“name”,“value”,并按以下方式创建
public static final String TABLE_NAME = "cookie";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_VALUE = "val";
private static final String DATABASE_NAME = "commments.db";
private static final int DATABASE_VERSION = 2;
// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
+ TABLE_NAME + "("
+ COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_VALUE + "text not null, "
+ COLUMN_NAME + " text not null"
+ ");";
public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}
现在我尝试按以下方式插入此表
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.COLUMN_NAME, "username");
values.put(MySQLiteHelper.COLUMN_VALUE, username);
long insertId = database.insert(MySQLiteHelper.TABLE_NAME, null, values);
Cursor cursor = database.query(MySQLiteHelper.TABLE_NAME, allColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null, null, null, null);
cursor.moveToFirst();
nameValuePair newComment = cursorToNameValuePair(cursor);
cursor.close();
但是我收到此错误
table cookie has no column named val
我在网上搜索了类似的问题,大多数解决方案都在谈论数据库发生了变化,所以我需要
1-在尝试再次以调试模式运行之前,请先卸载应用程序 2-将数据库版本从1更新为3
然而这没有帮助..所以期待你的解决方案:)
答案 0 :(得分:9)
问题在这里
+ COLUMN_VALUE + "text not null, "
进入DATABASE_CREATE
字符串。您错过了列名称和列类型之间的空间。
应该是
+ COLUMN_VALUE + " text not null, "