0

アプリを Android Phone のデータベースに接続したいので、 というクラスを作成しましたDBHelper

しかし、「MODE_PRIVATE」を変数に解決できないというエラーが表示されます。それで「Context.MODE_PRIVATE」を作りました。これで、変数を解決できますが、新しいエラーが発生します:

「タイプ DBHelper のメソッド openOrCreateDatabase(String, int, null) は定義されていません」.

DBHelper.this.openOrCreateDatabase開いて使ってもダメです。

誰でも私を助けることができますか?

これは私のコードです:

public class DBHelper {

    SQLiteDatabase db;

    public void insert(String news, Context con){

        db = openOrCreateDatabase("PlanB", con.MODE_PRIVATE, null);
        db.execSQL("DROP TABLE IF EXISTS News");
        db.execSQL("CREATE TABLE IF NOT EXISTS INBOX(id INTEGER,title VARCHAR,text VARCHAR,date VARCHAR);");

        String[] divided = news.split("/newentry/");
        int length = divided.length;
        int pos = 0;

        while(pos <= length){
            String[] entry = divided[pos].split("/;/");
            db.execSQL("INSERT INTO  INBOX VALUES('"+entry[0]+"','"+entry[1]+"','"+entry[2]+"','"+entry[3]+"');");
            pos++;  
        }

    db.close();
    }
}
4

2 に答える 2

1

AndroidでSQLiteを使用している場合は、どこかに拡張する必要があるため、 SQLiteOpenHelperを見てください。

ドキュメンテーション:

データベースの作成とバージョン管理を管理するヘルパー クラス。

onCreate(SQLiteDatabase)、onUpgrade(SQLiteDatabase, int, int)、およびオプションで onOpen(SQLiteDatabase) を実装するサブクラスを作成します。このクラスは、データベースが存在する場合はそれを開き、存在しない場合は作成し、必要に応じてアップグレードします。 . トランザクションは、データベースが常に適切な状態であることを確認するために使用されます。

これは、いくつかの用途を見つけることができる データベース ヘルパーです。

于 2013-08-20T19:56:50.283 に答える
0

クラスで SQLiteOpenHelper を拡張し、そのメソッドをオーバーライドすることをお勧めします

1.onCreate -- 指定されたデータベースにテーブルを作成します。 2.onUpdate -- 通常、テーブルを削除して更新するために使用されます。

また、次のステートメントを含むそのクラスのコンストラクターを作成することを確認してください super(context,DB_NAME, null,DB_VERSION);

このクラスのオブジェクトを別のクラス (プロジェクト内の任意のクラス) で宣言するときはいつでも、このコンストラクターが自動的にデータベースを作成します。次の onCreate メソッドが自動的に呼び出され、テーブルが存在しない場合は作成されます。これで、SQLiteOpenHelper を拡張してテーブルにデータを追加または削除するクラスにカスタム メソッドを追加できるようになりました。これらのメソッドは、他のクラスでオブジェクト宣言を介してアクセスできるようになりました。

これは SQLiteOpenHelper のチュートリアルです。

http://www.vogella.com/articles/AndroidSQLite/article.html

これが小さなヒントやガイダンスになることを願っています。

于 2013-08-20T20:15:11.390 に答える