Java E/SQLiteLog:(1)表keyTable没有名为number的列

Java E/SQLiteLog:(1)表keyTable没有名为number的列,java,android,database,Java,Android,Database,我不断地发现这个错误: “表keyTable没有名为number的列” 对于Android来说还是很新的,所以不知道为什么会发生这种情况,有人能发现错误吗 这是我的数据库类: public class KeyDatabase extends SQLiteOpenHelper { private static final String database_name = "KeyDatabase.db"; private static final int database_versio

我不断地发现这个错误:

“表keyTable没有名为number的列”

对于Android来说还是很新的,所以不知道为什么会发生这种情况,有人能发现错误吗

这是我的数据库类:

public class KeyDatabase extends SQLiteOpenHelper {
    private static final String database_name = "KeyDatabase.db";
    private static final int database_version = 1;

KeyDatabase (Context context){
    super(context,database_name,null,database_version);
}

@Override
public void onCreate (SQLiteDatabase db){
    db.execSQL("CREATE TABLE " + KeyTableClass.table_name
            + "(" + KeyTableClass.id + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + KeyTableClass.number + " TEXT, "
            + KeyTableClass.key + " TEXT);");
}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
    db.execSQL("DROP TABLE IF EXISTS " + KeyTableClass.table_name);
    onCreate(db);
}

public long InsertKey (String number, String key){
    ContentValues valuesToInsert = new ContentValues();

    valuesToInsert.put(KeyTableClass.number, number);
    valuesToInsert.put(KeyTableClass.key, key);

    SQLiteDatabase sd = getWritableDatabase();

    long result = sd.insert(KeyTableClass.table_name, KeyTableClass.number, valuesToInsert);

    return result;
}
这是我桌子上的课:

public class KeyTableClass {
//The name of the table
public static final String table_name = "keyTable";

//The columns of the table
public static String id = "id";
public static String number = "number";
public static String key = "key";
}
您不符合以下条件:

在API级别1中添加了将行插入到 数据库

参数表要插入行的表 nullColumnHack可选;可能为空。SQL不允许插入 完全空行,但不命名至少一个列名。如果你的 提供的值为空,不知道列名,且为空行 无法插入。如果未设置为null,则为nullColumnHack参数 提供可为NULL的列名的名称以显式插入NULL 在值为空的情况下输入。此映射包含的值 行的初始列值。键应该在列中 名称和值列值返回新 插入的行,如果发生错误,则为-1

你能试着做:


sb.insert(表名称,空,值插入)

也许您在创建时编辑了DB
onCreate
,但不让它重新运行?
尝试卸载/安装应用程序,或将
数据库\u版本更新为=2。

进行了更改,因此现在我有了这一行:long result=sd.insert(KeyTableClass.table\u name,null,valuesToInsert);我似乎仍然理解错误,我可能误解了你说的话。
public long insert (String table, String nullColumnHack, ContentValues values)