android.database.sqlite.sqliteException:表用户没有名为朋友的列



当我尝试将新行插入sqlite时,我会遇到错误。我搜索了代码中的任何错误,但是找不到任何错误。任何帮助都很棒!

这是我的错误:

android.database.sqlite.SQLiteException: table user has no column named friends (code 1): , while compiling: INSERT INTO user(email,name,api_key,friends,register_date) VALUES (?,?,?,?,?)

这是我的数据库:

private static final String TABLE_USER = "user";
private static final String COLUMN_ID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_EMAIL = "email";
private static final String COLUMN_API_KEY = "api_key";
private static final String COLUMN_FRIENDS = "friends";
private static final String COLUMN_REGISTER_DATE = "register_date";
public void onCreate(SQLiteDatabase db) {
    String SQL_CREATE_LOGIN = String.format(
            "CREATE TABLE %s (%s, %s, %s, %s)",
            TABLE_USER,
            String.format("%s integer primary key autoincrement", COLUMN_ID),
            String.format("%s varchar(30)", COLUMN_NAME),
            String.format("%s varchar(40)", COLUMN_EMAIL),
            String.format("%s varchar(32)", COLUMN_API_KEY),
            String.format("%s integer", COLUMN_FRIENDS),
            String.format("%s text", COLUMN_REGISTER_DATE)
    );
    db.execSQL(SQL_CREATE_LOGIN);
);

这是我的插入代码:

public void addUser(String name, String email, String api_key, int friends, String register_date) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(COLUMN_NAME, name); // Name
    values.put(COLUMN_EMAIL, email); // Email
    values.put(COLUMN_API_KEY, api_key); // Email
    values.put(COLUMN_FRIENDS, friends); // Friends
    values.put(COLUMN_REGISTER_DATE, register_date); // Created At
    // Inserting Row
    long id = db.insert(TABLE_USER, null, values);
    db.close(); // Closing database connection
    Log.d(TAG, "New user inserted into sqlite: " + id);
}

尝试以下:

public void onCreate(SQLiteDatabase db) {
    String SQL_CREATE_LOGIN = String.format(
            "CREATE TABLE %s (%s, %s, %s, %s, %s, %s)",
            TABLE_USER,
            String.format("%s integer primary key autoincrement", COLUMN_ID),
            String.format("%s varchar(30)", COLUMN_NAME),
            String.format("%s varchar(40)", COLUMN_EMAIL),
            String.format("%s varchar(32)", COLUMN_API_KEY),
            String.format("%s integer", COLUMN_FRIENDS),
            String.format("%s text", COLUMN_REGISTER_DATE)
    );
    db.execSQL(SQL_CREATE_LOGIN);
);

也许您忘了将CREATE TABLE %s (%s, %s, %s, %s)编辑为CREATE TABLE %s (%s, %s, %s, %s, %s, %s)。您要创建的表有6列。

相关内容

最新更新