1

複数の行を sqlite データベースに追加しようとすると、エラーが発生します。1行で問題ありません。さらに、samsung galaxy s2 ではこれが原因でアプリがクラッシュしますが、nexus ではクラッシュしません。

テーブルを作成するコードは次のとおりです。

 private static final String DATABASE_CREATE = "create table "
        + TABLE_AWARDS + "(" + COLUMN_ID
        + " integer primary key autoincrement, " + COLUMN_TITLE
        + " text not null, " + COLUMN_DESCRIPTION + " text not null, "
        + COLUMN_TYPE + " integer not null, " + COLUMN_ACHIEVED
        + " integer not null " + ");";

そして、テーブルに行を挿入するコード:

 private static final String DATABASE_INSERT = "INSERT into  awards (title, description, type, achieved) VALUES "
        + "('Speed maximum', 'Stay', 1 , 0),"
        + "('Speed maximum', 'under 130 km/h', 2 , 0);";

あなたが私に与えたstackoverflowの質問の答えによると、構文は次のようになります。

private static final String DATABASE_INSERT = "INSERT into  'awards' "+
        "SELECT 'Speed maximum' AS 'title', 'under 150 km/h' AS 'description', 1 AS 'type', 0 AS 'achieved'"
            +" UNION SELECT 'Speed maximum', 'under 130 km/h', 2 , 0"
            +" UNION SELECT 'Speed maximum', 'under 100 km/h', 3 , 0";

しかし、これもうまくいきません。

4

2 に答える 2

0

Eclipse でデバッグ モードに移動し、クエリの後にブレーク ポイントを置き、実行時に DATABASE_INSERT などの文字列の値を確認し、ここに投稿するか、そこにエラー自体を確認します。

于 2013-01-09T12:17:38.237 に答える
0
  1. 列の名前を変更してみてください。
  2. 最適なソリューションを挿入するには、insertOrThrow メソッド (インターネットで読む) を使用します。
  3. SQLiteOpenHelper を拡張するクラスの完全なコードを教えてください。
  4. logcat ログをください。
于 2013-01-09T12:24:13.543 に答える