2013-03-08 3 views
1

Я пытаюсь взять файл CSV и импортировать эти данные в Android SQLite3. Приложение работает нормально, без ошибки SQLite в LogCat. Я не уверен, почему данные не вводятся. Я убедился, что программа на самом деле пытается вставить execSQL, преднамеренно вызывая синтаксическую ошибку SQLite в команде вставки, и она появилась на LogCat. Таким образом, он находит файл CSV, и он добирается до вставки execSQL. Я просто не знаю, почему он не вставляет.Android - SQLite Не вставляя строки

private static final String CREATE_TABLE_MOVIES = "CREATE TABLE movies (_id integer primary key autoincrement, title text not null, year integer not null, director text not null);"; 

public DbAdapter(Context ctx){ 
    super(ctx, DATABASE_NAME, null, DATABASE_VERSION); 
    mContext = ctx; 
    this.mDb = getWritableDatabase(); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(CREATE_TABLE_MOVIES); 

    try { 
     BufferedReader in = new BufferedReader(new InputStreamReader(mContext.getAssets().open("movies.csv"))); 
     String line; 

     while((line = in.readLine()) !=null) { 
      String[] RowData = line.split(","); 

      moviesID = RowData[0]; 
      moviesTitle = RowData[1]; 
      moviesYear = RowData[2]; 
      moviesDirector = RowData[3]; 
      db.execSQL("insert into movies(_id, title, year, director) values(" + moviesID + ", '" + moviesTitle + "', " + moviesYear + ", '" + moviesDirector + "');"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

Попал в какое-либо исключение? –

+0

Никаких исключений нигде, о которых я знаю. LogCat и консоль чисты. – cYn

ответ

4

Поскольку вы создаете таблицы говорит о том, что _id является автоматически увеличивается, почему вы хотите, чтобы вставить это?

попробовать что-то вроде этого: -

db.execSQL("insert into movies(title, year, director) values(" + "'" + moviesTitle + "', " + moviesYear + ", '" + moviesDirector + "');"); 

где _id удаляется из insert query.

+0

Ты один сексуальный мужчина, ты это знаешь? Я удалил автоинкремент. Это сработало. Не могу поверить, что я пропустил это. Но это здорово в том, чтобы дать вашему коду свежий взгляд. – cYn