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 列,但我必须设置 4 列没有“ID”,因为这是主键。

问题:

  1. 没有记录添加到数据库中。我的代码有什么问题?
  2. 如果我不想在“onCreate”中创建数据库,如何从我的Assets文件夹中加载数据库?

此致

4

1 回答 1

0

我为您提供了一个简单的解决方案,请查看 GreenDao 生成器,您会看到它有多大帮助。

http://greendao-orm.com/

干杯

于 2013-07-27T20:54:12.580 回答