2015-02-15 3 views
1

Я пытаюсь сделать базу SQLite данных есть мой кодSQLite базы данных нет столбцов

public class SQliteHelper extends SQLiteOpenHelper { 
    public static final int DATABASE_VERSION = 1; 
    public static final String DATABASE_NAME = "moneyDB"; 
    public static final String TABLE_MONEY = "money", KEY_DATE = "date", KEY_VALUE = "value", KEY_WHY = "why"; 
    public static final String[] COLUMNS = {KEY_DATE,KEY_VALUE, KEY_WHY}; 

    public SQliteHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    }  

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_MONEY_TABLE = "CREATE TABLE" + TABLE_MONEY + "(" 
     + KEY_DATE +"TEXT PRIMARY KEY," + 
     KEY_VALUE + "TEXT," + 
     KEY_WHY +"TEXT,)"; 
     db.execSQL(CREATE_MONEY_TABLE); 
    } 

и это мой способ добавить

public void addDate(money money) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues contentValues = new ContentValues(); 
     contentValues.put(KEY_DATE, money.getDate()); 
     contentValues.put(KEY_VALUE, money.getMoney()); 
     contentValues.put(KEY_WHY, money.getWhy()); 
     db.insert(TABLE_MONEY,null,contentValues); 
     db.close(); 
    } 

каждый раз, когда я запустить приложение я получаю ошибка

02-15 21:02:22.242 27324-27324/com.main.project.money E/SQLiteLog﹕ (1) table money has no column named date 
02-15 21:02:22.252 27324-27324/com.main.project.money E/SQLiteDatabase﹕ Error inserting date=15/02/2015 why=gg value=55 
    android.database.sqlite.SQLiteException: table money has no column named date (code 1): , while compiling: INSERT INTO money(date,why,value) VALUES (?,?,?) 

ответ

0

Вы пропустите некоторые пробелы между именами полей и типы полей:
а также tween оператор CREATE TABLE и имя таблицы.
У вас также есть дополнительная конечная запятая (??).

@Override 
public void onCreate(SQLiteDatabase db){ 
    String CREATE_MONEY_TABLE = "CREATE TABLE" + TABLE_MONEY + "(" 
    + KEY_DATE +"TEXT PRIMARY KEY," + 
    KEY_VALUE + "TEXT," + 
    KEY_WHY +"TEXT,)"; 
    db.execSQL(CREATE_MONEY_TABLE); 
} 

Должно быть:

@Override 
public void onCreate(SQLiteDatabase db) 
{ 
    String CREATE_MONEY_TABLE = "CREATE TABLE " + TABLE_MONEY + " (" + 
    KEY_DATE + " TEXT PRIMARY KEY, " + 
    KEY_VALUE + " TEXT, " + 
    KEY_WHY + " TEXT)"; 
    db.execSQL(CREATE_MONEY_TABLE); 
} 
+0

я попробовать ... и я стараюсь, чтобы скопировать код ... но его ту же ошибку! :/ спасибо, кстати: D –

+0

Вы изменили структуру таблицы после первого запуска? Если это так, вы должны увеличить значение константы DATABASE_VERSION, чтобы позволить методу 'onUpgrade()' срабатывать. –

+1

спасибо, что вы соответствовали: D его работала –

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