2016-12-23 2 views
-1

Я получаю ошибку, когда пытаюсь вставить новую строку в SQLite. Я искал любую ошибку в моем коде, но я не могу найти никакой ошибки. Любая помощь будет замечательной!android.database.sqlite.SQLiteException: у пользователя таблицы нет столбца с именем друзей

Вот моя ошибка:

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); 
} 
+0

какая версия db.? –

+0

Удалите предыдущий и установите новый, а затем его работу. –

+0

@SuryaPrakashKushawah благодарит за ваш ответ. Это версия 2. Я пробовал, но это не решило мою проблему. –

ответ

1

Попробуйте это:

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 столбцов.

+0

Aw, спасибо @ Randyka Yudhistira. Позвольте мне сначала попробовать, спасибо btw –

+0

У меня все еще есть ошибка :( –

+0

Спасибо, это больше не ошибка. Я удалил ее и установил снова, а затем стрела, ошибка больше не появляется. D –

Смежные вопросы