0

データベースからいくつかの値を取得しようとしましたが、そのようなテーブルstudentエラーは発生しません。

私はこのDBAdapterクラスを持っています

public class DBAdapter {
    private static final String TAG = "DBAdapter";
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
    private final Context context;

    public static final String KEY_ROWID = "_id";
    public static final int KEY_STUDENTSID = 0;
    public static final String KEY_NAME = "name";
    public static final String KEY_SURNAME = "surname";
    public static final int KEY_MIDTERM = 0;
    public static final int KEY_PROJECT = 0;
    public static final int KEY_FINAL = 0;


    private static final String DATABASE_NAME = "studentDB";
    private static final String DATABASE_TABLE = "student";
    private static final int DATABASE_VERSION = 2;

    // Constructor
    public DBAdapter(Context ctx) {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }

    // To create and upgrade a database in an Android application
    // SQLiteOpenHelper subclass is usually created
    private static class DatabaseHelper extends SQLiteOpenHelper {
        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // Sends a Warn log message
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");

            // Method to execute an SQL statement directly
            db.execSQL("DROP TABLE IF EXISTS student");
            onCreate(db);
        }
    }

    // Opens the database
    public DBAdapter open() throws SQLException {
        // Create and/or open a database that will be used for reading only
        db = DBHelper.getReadableDatabase();
        return this;
    }

    // Closes the database
    public void close() {
        // Closes the database
        DBHelper.close();
    }

    public Cursor getNameSurname(String name) throws SQLException {
        if (name.toString().equals("*")) {
            return db.query(DATABASE_TABLE, new String[] { KEY_NAME,
                    KEY_SURNAME }, null, null, null, null, null);
        } else {

            return db.query(true, DATABASE_TABLE, new String[] { KEY_NAME,
                    KEY_SURNAME }, KEY_NAME + "='" + name + "'", null, null,
                    null, null, null);
        }

    }

}

このクラスで値を取得しようとします。私は学生DBデータベースをアセットに入れました。そのコードの何が問題になっていますか? 何が欠けていますか?何が欠けていますか? 何が悪い?何が悪い?

DDMS を開き、データベース フォルダーを見つけました。私のdb studentDBがあり、それをデスクトップにエクスポートして開きました。なぜ私のテーブルがありませんでしたstudentか?

4

3 に答える 3

0

というテーブルを作成しましたstudentか? あなたはそれを行う必要があります。

于 2013-05-24T20:37:30.530 に答える
0

onCreateメソッドにコードがありません

private static class DatabaseHelper extends SQLiteOpenHelper {
    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

不足しているコード

     String CREATE_StudentTable = "CREATE TABLE student  ( "
            + " ID   INTEGER PRIMARY KEY,  Student Name TEXT)";   
     db.execSQL(CREATE_StudentTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Sends a Warn log message
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");

        // Method to execute an SQL statement directly
        db.execSQL("DROP TABLE IF EXISTS student");
        onCreate(db);
    }
}
于 2013-05-24T20:44:03.503 に答える
0

onCreate() メソッドに次のように入力します。

@Override
public void onCreate(SQLiteDatabase db) {
    DATABASE_CREATE = ... your table creation command ...
    try {
        db.execSQL(DATABASE_CREATE);
    } catch (SQLException e) {
        // if table already exists, do nothing
    }
}
于 2013-05-24T20:42:29.700 に答える