1

ファイルを取得CSVして、そのデータを Android のSQLite3. SQLiteアプリは、エラーなしで正常に実行されますLogCat。データが入力されていない理由がわかりません。挿入コマンドでexecSQL意図的に構文エラーを発生させて、プログラムが実際に挿入を試みていることを確認したところ、 . したがって、ファイルを見つけて、挿入に到達します。挿入されない理由がわかりません。SQLiteLogCatCSVexecSQL

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();
    }
4

1 に答える 1

4

テーブルを作成すると、_id自動インクリメントされると表示されますが、なぜそれを挿入するのですか?

このようなことを試してください:-

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

_idから削除されますinsert query

于 2013-03-08T04:19:14.283 に答える