没有这样的列SQLite Android



有人知道我为什么会出现错误吗;没有";一个名为COL2的列?

Error inserting COL2=sdfsdf
android.database.sqlite.SQLiteException: table TWhereToGoList has no column named COL2 (code 1 SQLITE_ERROR): , while compiling: INSERT INTO TWhereToGoList(COL2) VALUES (?)

我的Contract类在这里创建DB变量:

public static final class YourEntry implements BaseColumns {
public static final String TABLE_NAME = "TWhereToGoList";
public static final String intWhereToGoListOID = BaseColumns._ID;
public static final String COL2 = "COL2";

我想问你是否可以帮助我:

我的DB Helper类(片段(:

@Override
public void onCreate(SQLiteDatabase db) {
db.deleteDatabase(new File(DATABASE_NAME));
String createTable = ("CREATE TABLE " + Contract.YourEntry.TABLE_NAME + " (" +
Contract.YourEntry.intWhereToGoListOID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
Contract.YourEntry.COL2 + "TEXT);"
);
db.execSQL(createTable);
public boolean addData(String string) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
//Wo dass die values hingelegt werden @COL2
values.put(Contract.YourEntry.COL2, string);

我在这里得到错误:

long result = db.insert(Contract.YourEntry.TABLE_NAME, null, values);
谢您的回答,如果您在下面的评论中有任何问题:(

显然,您在创建数据库时缺少了一个空白:

String createTable = ("CREATE TABLE " + Contract.YourEntry.TABLE_NAME + " (" +
Contract.YourEntry.intWhereToGoListOID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
Contract.YourEntry.COL2 + " TEXT);"
);

在最后一部分中,您应该有一个额外的空间" TEXT);",现在是"TEXT);"

SQLiteDatabase是在调用第一个SQLiteOpenHelper时自动创建的,并且您正在用db.deleteDatabase(new File(DATABASE_NAME));行删除它onCreate。只要删除它,(新鲜(重新安装应用程序,你的数据库应该被正确创建,插入应该开始工作

注意,当你只创建一个表,然后再添加另一列时,你必须在overaddedonUpdate方法中处理这个问题,onCreate将不会被再次调用

最新更新