2015-07-19 2 views
-1

Привет может кто-нибудь, пожалуйста, помогите решить эту проблему ..android.database.sqlite.SQLiteException: нет такой таблицы: и вставить ошибки

THis мой DatabaseHelper.java код

private static final String TABLE_SEATS = "Seat"; 
private static final String KEY_IDseats = "id"; 
private static final String KEY_CREATED_ATTs = "created_at"; 
private static final String KEY_Seatstrainno = "TrainNo"; 
private static final String KEY_Seatstype = "TrainType"; 
private static final String KEY_SeatsCls = "AvailC"; 
private static final String KEY_SEATSFARE="Fare" ; 
private static final String KEY_TOTALSEATS="Total_Seats"; 


private static final String CREATE_TABLE_seats = "CREATE TABLE " + TABLE_SEATS 
     + " (" + KEY_IDseats + " integer primary key autoincrement, " 
     + KEY_Seatstrainno + " string not null," 
     + KEY_Seatstype + " string not null," 
     + KEY_SeatsCls + " string not null," 
     + KEY_SEATSFARE + " string not null," 
     + KEY_TOTALSEATS + " string not null" 
     + ");"; 

@Override 
    public void onCreate(SQLiteDatabase _db) { 

     _db.execSQL(CREATE_TABLE_seats); 
     Log.d("Train seats table ", "created"); 


    } 


public void insertTrainseats(DatabaseHelper dob, String trainno, String trainttype, String traincls,String fare,String seats) { 

SQLiteDatabase SQ = dob.getWritableDatabase(); 
ContentValues initialVa = new ContentValues(); 
initialVa.put(KEY_Seatstrainno, trainno); 
initialVa.put(KEY_Seatstype, trainttype); 
initialVa.put(KEY_SeatsCls,traincls); 
initialVa.put(KEY_SEATSFARE, fare); 
initialVa.put(KEY_TOTALSEATS, seats); 

long k=SQ.insert(TABLE_SEATS, null, initialVa); 
} 

и мой LogCat показывает эту ошибку

07-19 08: 28: 06,444 2522-2522/com.example.myapplication E/SQLiteLog: (1) нет такой таблицы: сиденье

+1

Удалите приложение, чтобы избавиться от любого старого файла базы данных. http://stackoverflow.com/questions/21881992/when-is-sqliteopenhelper-oncreate-onupgrade-run – laalto

+0

Покажите нам, как вы ** экземпляр ** ваш DatabaseHelper. –

ответ

0

похоже таблицы сиденья не является создано. Вы должны убедиться, что onCreate() вызывается, прежде чем пытаться добавить данные.

Вы, наверное, нужен метод onUpgrade(), чтобы убедиться, что OnCreate вызывается правильно, если вы внесли изменения в базе данных:

public class DatabaseHelper extends SQLiteOpenHelper { 
    private static final String DATABASE_NAME = "YOUR_DATABASE_NAME; 
    // Increment this when you make changes 
    private static final int DATABASE_VERSION = 2; 

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

    // This will delete your old database, but that's probably ok since it's not yet working. 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     database.execSQL("DROP TABLE IF EXISTS " + TABLE_SEATS); 
     onCreate(database); 
    } 


    // plus the code you have above 
    ... 
} 
+0

Я добавляю оператор log.d() в начале oncreate и проверяет, что он вызывает, но он не отображается в logcat, что означает, что oncreate не называется no? что я могу сделать сейчас ... [я новичок в android] –

+0

Возможно, вам нужно добавить метод onUpgrade. Я добавил некоторые подробности об этом выше. –

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