0

新しいプロジェクトのサンプルを作成しましたが、いくつか問題があります。

ステップ 1 : データベース用の新しいクラスを作成します。

package com.isummation.customgallery;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    static final String dbName = "attach.db";
    static final String bankTable = "bank";

    public DatabaseHelper(Context context) {
        super(context, dbName, null, 33);
    }

    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("CREATE TABLE admin (id INTEGER PRIMARY KEY, username TEXT, password TEXT, sec_question TEXT, sec_answer TEXT)");

        db.execSQL("CREATE TABLE [bank] ([id] INTEGER  PRIMARY KEY NULL,[old_file_address] TEXT  NULL,[filename] TEXT  NULL,[thumnail] TEXT  NULL,[ext] TEXT  NULL)");

        db.execSQL("CREATE TABLE [enc] ([id] INTEGER  NOT NULL PRIMARY KEY,[MasterKey] TEXT  NULL)");
}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        // db.execSQL("DROP TABLE IF EXISTS " + bankTable);
        // db.execSQL("DROP TABLE IF EXISTS " + deptTable);
        // db.execSQL("DROP TRIGGER IF EXISTS dept_id_trigger");
        // db.execSQL("DROP TRIGGER IF EXISTS dept_id_trigger22");
        // db.execSQL("DROP TRIGGER IF EXISTS fk_empdept_deptid");
        // db.execSQL("DROP VIEW IF EXISTS " + viewEmps);
        // onCreate(db);
    }

    public void InsertNew(String FileAddr, String FileName, String thumbnail,
            String Ext) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("insert into bank values('','" + FileAddr + "','" + FileName
                + "','" + thumbnail + "','" + Ext + "')");
        // ContentValues cv = new ContentValues();
        // cv.put("old_file_address", FileAddr);
        // cv.put("filename", FileName);
        // cv.put("thumbnail", thumbnail);
        // cv.put("Ext", Ext);
        // db.insert(bankTable, null, cv);
        db.close();
    }

    public Cursor BindAll() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cur = db.rawQuery("select * from bank", new String[] {});
        return cur;
    }
}

ステップ 2 : アクティビティ クラスで「InsertNew」関数を使用する

DatabaseHelper db = new DatabaseHelper(getApplicationContext());
db.InsertNew("test", "test", "test", "test");

bankテーブルには 5 つの列があります。

  • ID : 主キー
  • 名前 1 : テキスト
  • 名前 1 : テキスト
  • 名前 1 : テキスト
  • 名前 1 : テキスト

5 つの列がありますが、これは主キーであるため、「ID」なしで 4 つの列を設定する必要があります。

質問:

  1. データベースにレコードは追加されません。私のコードの何が問題になっていますか?
  2. 「onCreate」でデータベースを作成したくない場合、Assetsフォルダからデータベースをロードするにはどうすればよいですか?

よろしくお願いします

4

1 に答える 1

0

私はあなたのための簡単な解決策を持っています.GreenDao Generatorをチェックしてください.それがどれほど役立つかがわかります.

http://greendao-orm.com/

乾杯

于 2013-07-27T20:54:12.580 に答える