1

データベースが作成されたときのみ(つまり、アプリがデバイスに初めてインストールされたときのみ)、sqliteデータベースにレコードを挿入したいと思います。私は助けを求めてグーグルで検索し、の onCreate()メソッドにデータを挿入することを提案する人もいましたSQLiteOpenHelperが、そのメソッドを使用してレコードを挿入できませんでした。

これは私のコードです

public class EventsData extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "events.db";
    private static final int DATABASE_VERSION = 1;

    // Table name
    public static final String TABLE = "events";

    // Columns
    public static final String NAME = "first";
    public static final String TITLE = "second";

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

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL("CREATE TABLE "+TABLE+"(" + _ID + "INTEGER PRMARY KEY AUTOINCREMENT, " + NAME +"TEXT, " + TITLE + "TEXT NOT NULL);");
        db.execSQL("INSERT INTO " + TABLE +" VALUES (1,'david','packard')");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                    db.execSQL("DROP TABLE IF EXISTS " + TABLE);
                    onCreate(db);
    }
}
4

3 に答える 3

1

sqliteデータベースブラウザを使用してデータベースを作成すると、このリンクを試すのに非常に役立ちますsqliteに記録するデータを挿入する

于 2013-06-15T19:10:44.557 に答える
0

テキスト間に CREATE TABLE クエリ スペースがありません....

NAME +"TEXT, " + TITLE + "TEXT NOT NULL);"

SOP でクエリを出力し、デスクトップの SQLITe ツールで実行してみてください。

于 2012-06-16T15:15:49.530 に答える
0

CREATEステートメントを正しく取得すると、正常に機能します。スペースがなく、スペルが正しくありません。 _ID + "INTEGER... _ID + " INTEGER andPRMARY must bePRIMARY` である必要があります。他にも間違いがある可能性があります。実行中のすべての SQL をログに出力するデバッグ オプションをプログラムに含めることをお勧めします。

于 2012-06-16T15:18:28.753 に答える